資料結構與演算法(C#實現)系列---演示篇(二) (轉)
資料結構與演算法(實現)系列---演示篇(二):namespace prefix = o ns = "urn:schemas--com::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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 演算法與資料結構系列 ( 二 ) - 實現前的基礎準備演算法資料結構
- 資料結構與演算法系列(一)陣列實現資料結構演算法陣列
- C#資料結構與演算法系列(八):棧(Stack)C#資料結構演算法
- 演算法與資料結構解析-- 系列文章彙總篇演算法資料結構
- C#資料結構與演算法系列(十五):排序演算法(SortAlgorithm)C#資料結構演算法排序Go
- 資料結構與演算法——常用高階資料結構及其Java實現資料結構演算法Java
- 使用C#實現資料結構堆C#資料結構
- 資料結構與演算法系列3資料結構演算法
- 資料結構系列:Objective-C實現二叉樹資料結構Object二叉樹
- 演算法與資料結構-棧(Stack)-Java實現演算法資料結構Java
- 資料結構系列之LRU演算法理論篇資料結構演算法
- 資料結構與演算法-反轉排序資料結構演算法排序
- Java資料結構與排序演算法 (二)Java資料結構排序演算法
- 《redis設計與實現》1-資料結構與物件篇Redis資料結構物件
- 資料結構與演算法系列 目錄資料結構演算法
- C#資料結構與演算法系列(二十一):希爾排序演算法(ShellSort)C#資料結構演算法排序
- TypeScript演算法與資料結構-陣列篇TypeScript演算法資料結構陣列
- 資料結構與演算法學習-開篇資料結構演算法
- 資料結構與演算法——基礎篇(一)資料結構演算法
- Redis系列文章-資料結構篇Redis資料結構
- 【資料結構與演算法】二叉樹資料結構演算法二叉樹
- 資料結構與演算法碎片積累(二)資料結構演算法
- 『資料結構與演算法』棧:詳解與程式碼實現資料結構演算法
- C#資料結構與演算法系列(十四):遞迴——八皇后問題(回溯演算法)C#資料結構演算法遞迴
- C# 資料操作系列 - 16 SqlSugar 完結篇C#SqlSugar
- 資料結構與演算法-資料結構(棧)資料結構演算法
- 資料結構演算法-go 實現二分法資料結構演算法Go
- 資料結構與演算法 | 棧的實現及應用資料結構演算法
- C#資料結構與演算法5-C# 快速排序C#資料結構演算法排序
- 資料結構與演算法-學習筆記(二)資料結構演算法筆記
- 資料結構與演算法-二分查詢資料結構演算法
- 資料結構與演算法:二叉排序樹資料結構演算法排序
- 資料結構與演算法課程筆記(二)資料結構演算法筆記
- 【資料結構與演算法】—— 二分查詢資料結構演算法
- 資料結構與演算法 | 如何實現LRU快取淘汰演算法資料結構演算法快取
- 資料結構與演算法(二)佇列、棧、連結串列資料結構演算法佇列
- 資料結構和演算法-Go實現二叉搜尋樹資料結構演算法Go
- 資料結構與演算法?看這篇就夠了!資料結構演算法
- 前端進階 | 資料結構與演算法之 LeetCode 篇前端資料結構演算法LeetCode