c#

位置:IT落伍者 >> c# >> 浏览文章

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


发布日期:2023年08月01日
 
数据结构与算法(C#)系列-二叉树

using System;

using SystemCollections;

namespace DataStructure

{

/// <summary>

/// BinaryTree 的摘要说明

/// </summary>

public class BinaryTree:NaryTree

{

//构造二叉空树

public BinaryTree():base()

{

//

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

//

}

public BinaryTree(object _obj):base(_obj)

{}

//

protected override object GetEmptyInstance(uint _degree)

{ return new BinaryTree(_degree); }

//

//重写深度遍历

public override void DepthFirstTraversal(IPrePostVisitor _vis)

{

if ( !IsEmpty() )

{

_visPreVisit(thisKey);

this[]DepthFirstTraversal(_vis);

_visVisit(thisKey);

this[]DepthFirstTraversal(_vis);

_visPostVisit(thisKey);

}

}

//二叉树大小的比较

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

#region IComparable 成员

public override int CompareTo(object obj)

{

// TODO: 添加 BinaryTreeCompareTo 实现

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

BinaryTree tmpTree=(BinaryTree)obj;

if( thisIsEmpty() )

return tmpTreeIsEmpty()?:;

if( tmpTreeIsEmpty() )

return ;

int result=ComparerDefaultCompare(thistmpTree);

if(result==)

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

if(result==)

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

return result;

}

#endregion

}

}

               

上一篇:使用.NET正则表达式区分中英文

下一篇:ADO.NET实用经验与大家分享