数据结构与算法(C#实现)系列---演示篇(二)_C#教程
来源:互联网 发布:php登录注册页面模板 编辑:程序博客网 时间:2024/05/17 05:54
数据结构与算法(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#教程
- 数据结构与算法(C#实现)系列---演示篇(二)_C#教程
- 数据结构与算法(C#实现)系列---演示篇(三)_C#教程
- 数据结构与算法(C#实现)系列---演示篇(三)_C#教程
- 数据结构与算法(C#实现)系列---演示篇(一)_C#教程
- 数据结构与算法(C#实现)系列---演示篇(一)_C#教程
- 数据结构与算法(C#实现)系列---树(二)_C#教程
- 数据结构与算法(C#实现)系列---树(二)_C#教程
- 数据结构与算法(C#实现)系列---树(一)_C#教程
- 数据结构与算法(C#实现)系列-----前言_C#教程
- 数据结构与算法(C#实现)系列---树(一)_C#教程
- 数据结构与算法(C#实现)系列-----前言_C#教程
- 数据结构与算法(C#实现)系列---树(三)_C#教程
- 数据结构与算法(C#实现)系列---树(三)_C#教程
- 数据结构与算法(C#实现)系列---树(一)_C#教程
- 数据结构与算法(C#实现)系列---树(一)_C#教程
- 数据结构与算法(C#实现)系列---演示篇(二)
- 数据结构与算法(C#实现)系列---广义树(二)_C#教程
- 数据结构与算法(C#实现)系列-----前言_C#教程
- C# 3.0新特性初步研究 Part4:使用集合类型初始化器_C#教程
- 一个用c#写的扫描asp源码漏洞的应用程序(续)_C#教程
- C#,深入浅出全接触(二)_C#教程
- C# 3.0新特性初步研究 Part4:使用集合类型初始化器_C#教程
- 数据结构与算法(C#实现)系列---演示篇(二)_C#教程
- C#,深入浅出全接触(二)_C#教程
- 数据结构与算法(C#实现)系列---演示篇(二)_C#教程
- C#编码好习惯_C#教程
- SUNWEN教程之----C#进阶(八)_C#教程
- C#编码好习惯_C#教程
- C# 3.0新特性体验之Lambda表达式_C#教程
- Word文档中快速插入分隔线的技巧_C#教程
- SUNWEN教程之----C#进阶(八)_C#教程