<form id="hz9zz"></form>
  • <form id="hz9zz"></form>

      <nobr id="hz9zz"></nobr>

      <form id="hz9zz"></form>

    1. 明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

      數據結構與算法(C#完成)系列---演示篇(二)

      [摘要]數據結構與算法(C#實現)系列---演示篇(二) Heavenkiller(原創) public static void ShowGeneralTree_travel() IEnume...

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

                                  Heavenkiller(原創)

               public static void ShowGeneralTree_travel()

               {

                    IEnumerator tmpIEnum;

                    Tree.TraversalType travelType=0;

       

                    //---------------------提示----------------------------

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

                    Console.WriteLine("1.BreadthFirst----- 廣度遍歷");

                    Console.WriteLine("2.PreDepthFirst-----前序遍歷");

                    Console.WriteLine("3.InDepthFirst----中序遍歷");

                    Console.WriteLine("4.PostDepthFirst----后序遍歷");

                    switch(Console.ReadLine())

                    {

                         case "1"://Show Stack

                             travelType=Tree.TraversalType.Breadth;

                             Console.WriteLine("廣度遍歷");

                             break;

                         case "2"://SortedList

                             travelType=Tree.TraversalType.PreDepth;

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

                             break;

                         case "3":

                             travelType=Tree.TraversalType.InDepth;

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

                             break;

                         case "4":

                        

       

       

      travelType=Tree.TraversalType.PostDepth;

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

                             break;

                        

                         default:

                             break;

                    }

                    //構造一棵廣義樹 generaltree

                    GeneralTree A=new GeneralTree("A");

                    GeneralTree B=new GeneralTree("B");

                    GeneralTree C=new GeneralTree("C");

                    GeneralTree D=new GeneralTree("D");

                    GeneralTree E=new GeneralTree("E");

                    GeneralTree F=new GeneralTree("F");

                             A.AttackSubtree(B);

                    A.AttackSubtree(C);

                    B.AttackSubtree(D);

                    B.AttackSubtree(E);

                    A.AttackSubtree(F);

                    //show the operation

                    Console.WriteLine("A.AttackSubtree(B)");

                    Console.WriteLine("A.AttackSubtree(C)");

                    Console.WriteLine("B.AttackSubtree(D)");

                    Console.WriteLine("B.AttackSubtree(E)");

                    Console.WriteLine("A.AttackSubtree(F)");

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

              

                    A.SetTraversalType(travelType);//設置遍歷類型

                    tmpIEnum=A.GetEnumerator();

       

                    //Console.WriteLine("begin to depthfist travel:");

              

                    while(tmpIEnum.MoveNext())

                    {

                         Console.WriteLine(tmpIEnum.Current.ToString());

                    }

              

          

               }

       

               public static void ShowStack_RPNCalCulator()

               {

                    //read a expression string and push every character into the stack in queue.

                    Console.WriteLine("this is performance for stack,you can input a string like this '123*+',then this subprogramme can compute it and get the result '7',this is RPN calculator. ");

                    Console.WriteLine("please input a expression string:");

                    string strExpression=Console.ReadLine();

                    char [] tmpChars=strExpression.ToCharArray(0,strExpression.Length);

                    Stack stackRPN=new Stack();

                   

       

       

                    int numA,numB;

                    foreach(char tmp in tmpChars)

                    {

                         switch (tmp)

                         {

       

                             case '*':

                                  numA=(int)stackRPN.Pop();

                                  numB=(int)stackRPN.Pop();

                                  stackRPN.Push(numA*numB);

                                  break;

                             case '+':

                                  numA=(int)stackRPN.Pop();

                                  numB=(int)stackRPN.Pop();

                                  stackRPN.Push(numA+numB);

                                  break;

                             default:

                                  stackRPN.Push(Int32.Parse(tmp.ToString()));

                                  break;

                            

                         }

                        

                        

       

                    }

                    Console.WriteLine("the result is:{0}",stackRPN.Pop().ToString());

       

       

                }

       




      日韩精品一区二区三区高清