您现在的位置是:首页 >

层次遍历二叉树算法 数据结构与算法(C#)系列-二叉树

火烧 2022-09-04 12:05:47 1039
数据结构与算法 C# 系列-二叉树   u i g Sy tem   u i g Sy tem Collectio       ame ace DataStructure   {  /// lt um

数据结构与算法(C#)系列-二叉树  

  using System;

  using System Collections;

  

 

  namespace DataStructure

  {

  /// <summary>

  /// BinaryTree 的摘要说明

  /// </summary>

  public class BinaryTree:NaryTree

  {

  //构造二叉空树

  public BinaryTree():base( )

  {

  //

  // TODO: 在此处添加构造函数逻辑

  //

层次遍历二叉树算法 数据结构与算法(C#)系列-二叉树

  }

  public BinaryTree(object _obj):base( _obj)

  {}

  //

  protected override object GetEmptyInstance(uint _degree)

  {    return new BinaryTree(_degree); }

  //

  //重写深度遍历

  public override void DepthFirstTraversal(IPrePostVisitor _vis)

  {

  if ( !IsEmpty() )

  {

  _vis PreVisit(this Key);

  this[ ] DepthFirstTraversal(_vis);

  _vis Visit(this Key);

  this[ ] DepthFirstTraversal(_vis);

  _vis PostVisit(this Key);

  

  

  }

  }

  

 

  

  //二叉树大小的比较

  //先比较关键字 如果相等 再比较左子树 如果再相等 则比较右子树 如此递归

  #region IComparable 成员

  

 

  public override int CompareTo(object obj)

  {

  // TODO:  添加 BinaryTree CompareTo 实现

  //因为Comare()中已经进行了类型断定 故不会出现转型错误

  BinaryTree tmpTree=(BinaryTree)obj;

  

  if( this IsEmpty() )

  return tmpTree IsEmpty()? : ;

  if( tmpTree IsEmpty() )

  return ;

  

 

  int result=Comparer Default Compare(this tmpTree);

  if(result== )

  result=this[ ] CompareTo(tmpTree[ ]);

  if(result== )

  result=this[ ] CompareTo(tmpTree[ ]);

  

 

  

  return result;

  }

  

 

  #endregion

  }

lishixinzhi/Article/program/net/201311/12790  
永远跟党走
  • 如果你觉得本站很棒,可以通过扫码支付打赏哦!

    • 微信收款码
    • 支付宝收款码