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

原创 2004年02月03日 13:37:00

                       数据结构与算法(C#实现)系列---演示篇()<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

                            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());

 

 

          }

 

 

 

可视化的数据结构 - 各种算法动画演示

1. 2. 很酷的各种排序演示:
  • BigLeo
  • BigLeo
  • 2014年11月17日 22:23
  • 15721

【算法】java版红黑树算法的完整实现及swing界面演示程序

【前言】 当初因为觉得数据结构及算法是码农的基础(正如锄头对农民一样)才决定话费时间来补习的,但是真正自行实现算法及算法的可视化演示的时候才发现难度是如此之大。 算法写起来慢,swing界面写起来...
  • cdnight
  • cdnight
  • 2013年08月30日 11:16
  • 2624

视图动画学习算法和数据结构(一)(<Garry进阶(四)>)

转载请注明原出处:http://blog.csdn.net/lrs123123/article/details/43114619 这是一个写给自己复习温习的博文,不喜勿喷  ,结合视图动画学习数据...
  • lrs123123
  • lrs123123
  • 2015年01月25日 14:56
  • 1127

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

                          数据结构与算法(C#实现)系列---演示篇(一)                                 Heavenkiller(原创) ...
  • heavenkiller
  • heavenkiller
  • 2004年02月03日 13:37
  • 1673

数据结构与算法系列----Sunday算法详解

Sunday算法是Daniel M.Sunday于1990年提出的字符串模式匹配。Sunday算法的思想和BM算法中的坏字符思想非常类似。差别只是在于Sunday算法在失配之后,是取目标串中当前和模式...
  • LaoJiu_
  • LaoJiu_
  • 2016年02月29日 19:38
  • 5282

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

                   数据结构与算法(C#实现)系列---演示篇(三)                            Heavenkiller(原创)          pub...
  • heavenkiller
  • heavenkiller
  • 2004年02月03日 13:37
  • 1245

《数据结构与算法C#语言描述》笔记目录

前言 书中,正则表达式、和散列表部分撰写内容不够丰富。通书更适合作为引入性的介绍、了解。 本书原版书名为:Data Structures and Algorithms Using C#。出版时间是...
  • Maths_bai
  • Maths_bai
  • 2012年10月07日 23:44
  • 2403

C语言-数据结构-二叉排序树与平衡树算法实现及演示

这个程序是我05年2月份学数据结构时候,老师说让我做个演示程序时候做的一个最初版本程序。当然这不是教给老师的演示程序版本,演示版本的算法是套用书上的(清华-严老师),这版本算法是我自己写的,所以我不能...
  • hbyufan
  • hbyufan
  • 2006年04月29日 05:12
  • 13751

【数据结构与算法】c# Dictionary内部实现

新手:习惯、激情、方向 组建知识网,前期不在乎得失和性价比 Dictionary咋用的? Dictionary dic = new Dictionary(); ...
  • TW_345
  • TW_345
  • 2017年03月13日 21:12
  • 1138

数据结构中的7种排序算法

数据结构中的7种排序算法排序是将一个记录的任意序列重新排列成一个按键值有序的序列。 时间复杂度主要考虑元素的移动次数。 结构如下: 1.直接插入排序 1,定义:依次将待排序序列中的每一个记录...
  • Decorator2015
  • Decorator2015
  • 2016年03月31日 16:12
  • 1375
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:数据结构与算法(C#实现)系列---演示篇(二)
举报原因:
原因补充:

(最多只允许输入30个字)