数据结构与算法(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()); }
数据结构与算法(c#实现)系列—演示篇(二)_c#教程
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 数据结构与算法(c#实现)系列—演示篇(二)_c#教程
相关推荐
-      利用c#远程存取access数据库_c#应用
-      c# 3.0新特性系列:隐含类型var_c#教程
-      c#动态生成树型结构的web程序设计_c#应用
-      论c#变得越来越臃肿是不可避免的_c#应用
-      用c#监控并显示cpu状态信息_c#应用
-      c#中实现vb中的createobject方法_c#应用
-      photoshop给花瓶打造彩绘效果_photoshop教程
-      使用c#创建sql server的存储过程_c#应用