WEB开发网      濠电姷鏁告繛鈧繛浣冲洤纾瑰┑鐘宠壘閻ょ偓銇勯幇鍫曟闁稿鍠愰妵鍕冀閵娧佲偓鎺楁⒒閸曨偄顏柡宀嬬畱铻e〒姘煎灡绗戦梻浣筋嚙濮橈箓顢氳濠€浣糕攽閻樿宸ュΔ鐘叉啞缁傚秹宕滆绾惧ジ寮堕崼娑樺缂佹宀搁弻鐔风暋閻楀牆娈楅梺璇″枓閺呯姴鐣疯ぐ鎺濇晝闁靛牆妫欓蹇旂節閻㈤潧浠﹂柛銊ョ埣楠炴劙骞橀鑲╋紱闂佽宕樼粔顔裤亹閹烘挸浜归梺缁樺灦閿曗晛螞閸曨垱鈷戦柟鑲╁仜婵″ジ鎮楀☉鎺撴珖缂侇喖顑呴鍏煎緞濡粯娅囬梻浣瑰缁诲倿寮绘繝鍥ㄦ櫇闁稿本绋撻崢鐢告煟鎼淬垻鈯曢柨姘舵煟韫囥儳绋荤紒缁樼箖缁绘繈宕橀妸褌绱濋梻浣筋嚃閸ㄤ即宕弶鎴犳殾闁绘梻鈷堥弫鍌炴煕閳锯偓閺呮瑧妲愬Ο琛℃斀闁绘劕妯婇崵鐔封攽椤旇棄鍔ら摶鐐烘煕閺囥劌澧柛娆忕箻閺屽秹宕崟顒€娅g紓浣插亾濠㈣泛顑囩粻楣冩煙鐎涙ḿ绠橀柨娑樼У椤ㄣ儵鎮欓鍕紙闂佽鍠栫紞濠傜暦閹偊妲诲┑鈩冨絻椤兘寮诲☉銏犖╅柕澶堝労閸斿绱撴担绋库偓鍝ョ矓瑜版帒鏋侀柟鍓х帛閺呮悂鏌ㄩ悤鍌涘 ---闂傚倸鍊烽悞锔锯偓绗涘厾娲煛閸涱厾顔嗛梺璺ㄥ櫐閹凤拷
开发学院软件开发C语言 数据结构与算法(C#实现)系列---演示篇(一) 阅读

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

 2004-02-07 12:45:09 来源:WEB开发网 闂傚倸鍊风欢姘缚瑜嶈灋闁圭虎鍠栫粻顖炴煥閻曞倹瀚�闂傚倸鍊风粈渚€骞夐敓鐘插瀭闁汇垹鐏氬畷鏌ユ煙閹殿喖顣奸柛搴$У閵囧嫰骞掗幋婵冨亾閻㈢ǹ纾婚柟鐐灱濡插牊绻涢崱妤冃℃繛宀婁簽缁辨捇宕掑鎵佹瀸闂佺懓鍤栭幏锟�濠电姷鏁告慨顓㈠箯閸愵喖宸濇い鎾寸箘閹规洟姊绘笟鈧ḿ褍煤閵堝悿娲Ω閳轰胶鍔﹀銈嗗笂閼冲爼鍩婇弴銏$厪闁搞儮鏅涙禒褏绱掓潏鈺佷槐闁轰焦鎹囬弫鎾绘晸閿燂拷闂傚倸鍊风欢姘缚瑜嶈灋闁圭虎鍠栫粻顖炴煥閻曞倹瀚�  闂傚倸鍊烽懗鑸电仚缂備胶绮〃鍛村煝瀹ュ鍗抽柕蹇曞У閻庮剟姊虹紒妯哄闁圭⒈鍋嗛惀顏囶樄闁哄本娲樼换婵婄疀閺囩姷鐛ラ梻浣哄帶婢瑰﹥绂嶅⿰鍫氣偓鏃堝礃椤忎礁浜鹃柨婵嗛婢ь喖霉閻樻瑥瀚粻楣冩煕椤愩倕鏋庨柣蹇嬪劜閵囧嫰寮村Ο鍝勫Е濡炪們鍨洪悷鈺呭箖閳╁啯鍎熼柕鍥у簻閹凤拷
核心提示: 数据结构与算法(C#实现)系列---演示篇(一) Heavenkiller(原创) 这一篇主要是针对以后各篇的数据类型进行一个实质性的演示,因此希望大家具体看了各种数据结构的分析之后再看这篇,数据结构与算法(C#实现)系列---演示篇(一), 主要包括如下几个方面的演示:1. 堆栈, 演示了一个利用堆栈作的RPN

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

               Heavenkiller(原创)

这一篇主要是针对以后各篇的数据类型进行一个实质性的演示。因此希望大家具体看了各种数据结构的分析之后再看这篇。

主要包括如下几个方面的演示:

1.    堆栈。 演示了一个利用堆栈作的RPN计算器

2.    排序表。演示了一个利用排序表做的多项式表达式的加法运算

3.    广义树。演示了深度遍历和广度遍历

4.    N叉树。演示了N叉树的生成插入删除等基本操作

5.    表达式树。演示了一个用二叉树和堆栈做的可以将一个后缀表达式翻译为日常中熟悉的中缀表达式的例子

6.    AVL树。演示了基本操作

using System;

using System.Collections;

namespace DataStructure

{

/// <summary>

/// Class1 的摘要说明。

/// </summary>

class Show

{

   /// <summary>

   /// 应用程序的主入口点。

   /// </summary>

   [STAThread]

   static void Main(string[] args)

   {

      //

      // TODO: 在此处添加代码以启动应用程序

      //

      while(true)

      {

        Console.WriteLine("please choose a the No. of a item you want to perform:");

        Console.WriteLine("1.Stack----- RPNCalCulator");

        Console.WriteLine("2.SortedList-----the addition of polynomial realized by sortedlist ");

        Console.WriteLine("3.GeneralTree----depthtravesal and breathtraval");

        Console.WriteLine("4.NaryTree");

        Console.WriteLine("5.ExPRessionTree");

        Console.WriteLine("6.AVLTree");

        Console.WriteLine("7.BinaryHeap");

        Console.WriteLine("exit--Exit this programme");

        //Test();

     

        switch(Console.ReadLine())

        {

          case "1"://Show Stack

             ShowStack_RPNCalCulator();

             break;

          case "2"://SortedList

             ShowSortedList_Polynomial();

             break;

          case "3":         

             ShowGeneralTree_travel();

             break;

          case "4":

             ShowNaryTree();//演示一个三叉树的Attach和Detach

             break;

          case "5":

             ShowExpressionTree();

             break;

          case "6":

             ShowAVLTree();

             break;

          case "7":

             ShowBinaryHeap();

             break;

          case "exit":

             return;   

          default:

             break;

        }

      }

     

   }

   public static void ShowBinaryHeap()

   {

      //构造一个二叉堆, 包含2,4,6,8,10,12

      BinaryHeap bHeap=new BinaryHeap(10);

      bHeap.Enqueue(12);

      bHeap.Enqueue(10);

      bHeap.Enqueue(8);

      bHeap.Enqueue(6);

      bHeap.Enqueue(4);

      bHeap.Enqueue(2);

      //测试Dequeue();

      while(bHeap.Count!=0)

      {

        Console.WriteLine(bHeap.DequeueMin().ToString());

      }

   }

   public static void ShowAVLTree()

   {

      AVLTree testAVL=new AVLTree(5);

      testAVL.Insert(1);

      testAVL.Insert(3);

      testAVL.Insert(7);

      testAVL.Insert(8);

      testAVL.Insert(9);

      testAVL.Insert(10);

      testAVL.Insert(11);

      PrintVisitor vis=new PrintVisitor();

      Tree.InOrder inVis=new DataStructure.Tree.InOrder(vis);

      testAVL.DepthFirstTraversal(inVis);

   }

   public static void ShowExpressionTree()

   {

      ExpressionTree.PostfixToInfix();

   }

   public static void ShowNaryTree()

   {

      //构造一个三叉树,具体见图1-2

      NaryTree A=new NaryTree(3,"A");

      NaryTree B=new NaryTree(3,"B");

      NaryTree C=new NaryTree(3,"C");

      NaryTree D=new NaryTree(3,"D");

      NaryTree E=new NaryTree(3,"E");

      B.AttachSubtree(1,D);

      B.AttachSubtree(2,E);

      A.AttachSubtree(1,B);

      A.AttachSubtree(3,C);

     

      //---------------------------

      Console.WriteLine("广度遍历");

      PrintVisitor vis=new PrintVisitor();

     

      A.BreadthFirstTraversal(vis);//广度遍历

      Console.WriteLine("前序遍历");

      Tree.PreOrder preVisit=new DataStructure.Tree.PreOrder(vis);

      A.DepthFirstTraversal(preVisit);

      Console.WriteLine("后序遍历");

      Tree.PostOrder postVisit=new DataStructure.Tree.PostOrder(vis);

      A.DepthFirstTraversal(postVisit);

      Console.WriteLine("中序遍历");

      Tree.InOrder inVisit=new DataStructure.Tree.InOrder(vis);

      A.DepthFirstTraversal(inVisit);        

   }

Tags:数据结构 算法 实现

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接