数据结构与算法(C#实现)系列---树(三)

数据|数据结构|算法

 
数据结构与算法(C#实现)系列---树(三)

 Heavenkiller(原创)

         //overwrite Object.Equals() ---  reference  type   realization

         public override bool Equals(object _obj)

         {

              if( _obj==null )

                   return false;//因为this不可能为null

              if( ! (this.GetType()==_obj.GetType()) )

                   return false;//类型不相等也不相等

              Tree tmpObj=(Tree)_obj;

              //比较引用成员

              if( !Object.Equals(this.Key,tmpObj.Key) )

                   return false;

             

              //比较值类型成员

              if( !this.Degree.Equals(tmpObj.Degree) )

                   return false;

              //if( !this.Height.Equals(tmpObj.Height) )

                   //return false;

              return true;

         }

         //在此重载 ==,!= 后, 在以后继承的类中不必实现了

         public static bool operator==(Tree _treeA,Tree _treeB)

         {

              return Object.Equals(_treeA,_treeB);

         }

         public static bool operator!=(Tree _treeA,Tree _treeB)

         {

              return !(_treeA==_treeB);

         }

        

    

    

    

         #region IComparable 成员

         public virtual int CompareTo(object obj)

         {

              // TODO:  添加 Tree.CompareTo 实现

              return 0;

         }

         #endregion

    

     }

}

时间: 2024-11-18 03:14:38

数据结构与算法(C#实现)系列---树(三)的相关文章

数据结构与算法(C#实现)系列---树

数据|数据结构|算法 首先我们给树下一个定义: 树是一个有限的.非空的结点集, T={r} or T1 or T2 or-or Tn     它具有下列性质:     1.集合指定的结点r叫做树的根结点     2.其余的结点可以划分成n个子集,T1,T2,-Tn(n>=0),其中每一个子集都是一棵树.         树的其它定义如度,叶子,高等就请大家查阅别的资料吧,到处都有的.     树的主要性质一个就是遍历,分为深度遍历和广度遍历     在这里分别实现为DepthFirstTrave

数据结构与算法(C#实现)系列---演示篇(三)

数据|数据结构|算法 数据结构与算法(C#实现)系列---树(二) Heavenkiller(原创) public class InOrder:IPrePostVisitor { private IVisitor visitor; public InOrder(IVisitor _vis){visitor=_vis;} #region IPrePostVisitor 成员 public void PreVisit(object _obj) { // TODO: 添加 InOrder.PreVis

数据结构与算法(C#实现)系列---广义树(一)

数据|数据结构|算法 数据结构与算法(C#实现)系列---广义树(一) Heavenkiller(原创) 广义树和基本树的主要区别就是有任意的度 using System; using System.Collections; namespace DataStructure { /// <summary> /// GeneralTree 的摘要说明. /// general tree is a tree which has a arbitrary degree and no empty tree

数据结构与算法(C#实现)系列---广义树(二)

数据|数据结构|算法 数据结构与算法(C#实现)系列---广义树(二) Heavenkiller(原创) public override object Key{get{return this.key;}} public override uint Degree{get{return this.degree;}} //public override uint Height{get{return this.height;}} public override bool IsEmpty()// prop

数据结构与算法(C#实现)系列---演示篇(一)

数据|数据结构|算法 数据结构与算法(C#实现)系列---演示篇(一) Heavenkiller(原创) 这一篇主要是针对以后各篇的数据类型进行一个实质性的演示.因此希望大家具体看了各种数据结构的分析之后再看这篇. 主要包括如下几个方面的演示: 1. 堆栈. 演示了一个利用堆栈作的RPN计算器 2. 排序表.演示了一个利用排序表做的多项式表达式的加法运算 3. 广义树.演示了深度遍历和广度遍历 4. N叉树.演示了N叉树的生成插入删除等基本操作 5. 表达式树.演示了一个用二叉树和堆栈做的可以将

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

数据|数据结构|算法 数据结构与算法(C#实现)系列---N叉树(二) Heavenkiller(原创) public override uint Degree { get { return this.degree; } } //------------------------------------------------------------------------------------- //只用于空树结点 public virtual void AttachKey(object _o

数据结构与算法(C#实现)系列---演示篇(二)

数据|数据结构|算法 数据结构与算法(C#实现)系列---演示篇(二) Heavenkiller(原创) public static void ShowGeneralTree_travel() { IEnumerator tmpIEnum; Tree.TraversalType travelType=0; //---------------------提示---------------------------- Console.WriteLine("please choose a the No.

数据结构与算法(C#实现)系列---N叉树(一)

数据|数据结构|算法 数据结构与算法(C#实现)系列---N叉树(一) Heavenkiller(原创) N叉树的每一节点度数都相同,为N using System; using System.Collections; namespace DataStructure { /// <summary> /// NaryTree 的摘要说明.-----N叉树 /// </summary> public class NaryTree:Tree { // member variables p

数据结构和算法06 之2-3-4树

   从第4节的分析中可以看出,二叉搜索树是个很好的数据结构,可以快速地找到一个给定关键字的数据项,并且可以快速地插入和删除数据项.但是二叉搜索树有个很麻烦的问题,如果树中插入的是随机数据,则执行效果很好,但如果插入的是有序或者逆序的数据,那么二叉搜索树的执行速度就变得很慢.因为当插入数值有序时,二叉树就是非平衡的了,它的快速查找.插入和删除指定数据项的能力就丧失了.     2-3-4树是一个多叉树,它的每个节点最多有四个子节点和三个数据项.2-3-4树和红-黑树一样,也是平衡树,它的效率比红