程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 數據結構與算法(C#實現)系列---樹(二)

數據結構與算法(C#實現)系列---樹(二)

編輯: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.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:

             &nb

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved