ITPub博客

首页 > 应用开发 > IT综合 > 数据结构与算法(C#实现)系列---演示篇(二) (转)

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

原创 IT综合 作者:themoney 时间:2007-09-15 23:39:19 0 删除 编辑
数据结构与算法(C#实现)系列---演示篇(二) (转)[@more@]

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

    }

 


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10794571/viewspace-969620/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
  • 博文量
    119
  • 访问量
    337587