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

原创 2004年02月03日 13:38:00

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

                                          Heavenkiller(原创)

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

         public class InOrder:IPrePostVisitor

         {

              private IVisitor visitor;

              public InOrder(IVisitor _vis){visitor=_vis;}

              #region IPrePostVisitor 成员

 

              public void PreVisit(object _obj)

              {

                   // TODO:  添加 InOrder.PreVisit 实现

              }

 

              public void Visit(object _obj)

              {

                   // TODO:  添加 InOrder.Visit 实现

                   this.visitor.Visit(_obj);

              }

 

              public void PostVisit(object _obj)

              {

                   // TODO:  添加 InOrder.PostVisitor 实现

              }

 

              #endregion

 

          }

         public class PostOrder:IPrePostVisitor

         {

              private IVisitor visitor;

              public PostOrder(IVisitor _vis){visitor=_vis;}

              #region IPrePostVisitor 成员

 

              public void PreVisit(object _obj)

              {

                   // TODO:  添加 PostOrder.PreVisit 实现

              }

 

              public void Visit(object _obj)

              {

                   // TODO:  添加 PostOrder.Visit 实现

              }

 

              public void PostVisit(object _obj)

              {

                   // TODO:  添加 PostOrder.PostVisitor 实现

                   this.visitor.Visit(_obj);

              }

 

              #endregion

 

         }

         protected class EnumVisitor:IVisitor

         {

              Queue thisQueue;

              public EnumVisitor(Queue _que)

              {

                   this.thisQueue=_que;

              }

              #region IVisitor 成员

 

              public void Visit(object _obj)

              {

                   // TODO:  添加 EnumVisitor.Visit 实现

                   this.thisQueue.Enqueue(_obj);

              }

 

              #endregion

         }

 

 

 

 

         #region IEnumerable 成员

 

         public IEnumerator GetEnumerator()

         {

              // TODO:  添加 Tree.GetEnumerator 实现

              EnumVisitor vis=new EnumVisitor(this.keyqueue);

              switch (this.traversaltype)

              {

                   case TraversalType.Breadth:

                       BreadthFirstTraversal(vis);

                        break;

                   case TraversalType.PreDepth:

                       PreOrder preVis=new PreOrder(vis);

                       DepthFirstTraversal(preVis);                      

                       break;

                   case TraversalType.InDepth:

                       InOrder inVis=new InOrder(vis);

                       DepthFirstTraversal(inVis);                   

                       break;

                  case TraversalType.PostDepth:

                       PostOrder postVis=new PostOrder(vis);

                       DepthFirstTraversal(postVis);                     

                       break;

             

                   default:

                       Console.WriteLine("WARNING:please set a travel type first!--void SetTraversalType(TraversalType _type) ");

                       //throw new Exception("WARNING:please set a travel type first!");//if not set a type, a exception will happen

                       break;

              }

              return this.keyqueue.GetEnumerator();

         }

 

         #endregion

 

        

 

 

 

 

 

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

3.1、树的表示方法 3.2、树的基本术语 1、结点、结点的度和树的度 结点:包含一个元素及若干指向子树的分支 结点的度:结点所拥有的子树数 树的度:树内各结点度的最大值 叶子结点:度为零的结点,...
  • sgzy001
  • sgzy001
  • 2013年12月09日 23:46
  • 1253

数据结构之赫夫曼树的算法介绍和实现

一、基础知识: (1)最优二叉树(赫夫曼树)的介绍: a、路径长度:从树中一个结点到另一个结点之间的分支构成这两个结点之间的路径,路径上分支数目称做路径长度。 b、树的路径长度:从树根到每一个结...
  • lfeng_coding
  • lfeng_coding
  • 2015年08月19日 16:05
  • 3474

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

       数据结构与算法(C#实现)系列---树(二)                    Heavenkiller(原创)          public class InOrder:IPre...
  • qw19840702
  • qw19840702
  • 2008年03月03日 02:48
  • 183

数据结构与算法系列----Sunday算法详解

Sunday算法是Daniel M.Sunday于1990年提出的字符串模式匹配。Sunday算法的思想和BM算法中的坏字符思想非常类似。差别只是在于Sunday算法在失配之后,是取目标串中当前和模式...
  • LaoJiu_
  • LaoJiu_
  • 2016年02月29日 19:38
  • 5274

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

  数据结构与算法(C#实现)系列---树(一)                                          Heavenkiller(原创)首先我们给树下一个定义:树是一个有限...
  • iltaek
  • iltaek
  • 2009年07月28日 19:52
  • 341

我的软考之路(四)——数据结构与算法(2)之树与二叉树

上篇博文主要介绍的是数据结构的线性结构,我们这篇博文介绍非线性结构—树与二叉树,我先介绍树的一些基本概念,树的遍历,再介绍二叉树相关概念和特性,以及二叉树的遍历,最后再树与二叉树的对比,总结。    ...
  • jiuqiyuliang
  • jiuqiyuliang
  • 2014年04月25日 08:16
  • 9674

python数据结构与算法 37 树的实现

树的实现 记住上一节树的定义,在定义的基础上,我们用以下的函数创建并操作二叉树: BinaryTree() 创建一个二叉树实例 getLeftChild() 返回节点的左孩子 getRig...
  • ppabcde
  • ppabcde
  • 2014年05月07日 13:13
  • 1921

数据结构与算法JavaScript - 二叉树和二叉查找树

树是计算机科学中常用到的一种
  • HobbitHero
  • HobbitHero
  • 2016年07月28日 18:01
  • 1277

《数据结构与算法C#语言描述》笔记目录

前言 书中,正则表达式、和散列表部分撰写内容不够丰富。通书更适合作为引入性的介绍、了解。 本书原版书名为:Data Structures and Algorithms Using C#。出版时间是...
  • Maths_bai
  • Maths_bai
  • 2012年10月07日 23:44
  • 2401

数据结构之树和二叉树算法实现(C语言)

待我学有所成,结发与蕊可好。@夏瑾墨 开发环境为Dev-C++ 5.11 编译器:MinGW GCC 6.1.0 64-bit 一、算法程序组建目录结构如下: 第一部分:头文件 1. c...
  • the_Sixth_String
  • the_Sixth_String
  • 2016年10月26日 01:40
  • 2133
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:数据结构与算法(C#实现)系列---树(二)
举报原因:
原因补充:

(最多只允许输入30个字)