欢迎光临
我们一直在努力

数据结构与算法(c#实现)系列—演示篇(二)_c#教程

建站超值云服务器,限时71元/月

                       数据结构与算法(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());


 


 


          }


 

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 数据结构与算法(c#实现)系列—演示篇(二)_c#教程
分享到: 更多 (0)