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

数据结构与算法(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("2.PreDepthFirst-----前序遍历");

Console.WriteLine("3.InDepthFirst----中序遍历");

Console.WriteLine("4.PostDepthFirst----后序遍历");

{

case "1"://Show Stack

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. ");

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
• 2014年11月17日 22:23
• 15721

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

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

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

• lrs123123
• 2015年01月25日 14:56
• 1127

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

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

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

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

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

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

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

• Maths_bai
• 2012年10月07日 23:44
• 2403

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

• hbyufan
• 2006年04月29日 05:12
• 13751

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

• TW_345
• 2017年03月13日 21:12
• 1138

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

• Decorator2015
• 2016年03月31日 16:12
• 1375

举报原因： 您举报文章：数据结构与算法(C#实现)系列---演示篇(二) 色情 政治 抄袭 广告 招聘 骂人 其他 (最多只允许输入30个字)