資料結構與演算法(C#實現)系列---演示篇(一) (轉)
資料結構與演算法(實現)系列---演示篇(一):namespace prefix = o ns = "urn:schemas--com::office" />
Heavenkiller(原創)
這一篇主要是針對以後各篇的資料型別進行一個實質性的演示。因此希望大傢俱體看了各種資料結構的分析之後再看這篇。
主要包括如下幾個方面的演示:
1. 堆疊。 演示了一個利用堆疊作的RPN計算器
2. 排序表。演示了一個利用排序表做的多項式的加法運算
3. 廣義樹。演示了深度遍歷和廣度遍歷
4. N叉樹。演示了N叉樹的生成插入刪除等基本操作
5. 表示式樹。演示了一個用二叉樹和堆疊做的可以將一個字尾表示式翻譯為日常中熟悉的中綴表示式的例子
6. AVL樹。演示了基本操作
using System;
using System.Collections;
namespace DataStructure
{
///
/// Class1 的摘要說明。
///
class Show
{
///
/// 應用的主入口點。
///
[STAThread]
static void
{
//
// TODO: 在此處新增程式碼以啟動應用程式
//
while(true)
{
Console.WriteLine("please choose a the No. of a item you want to perform:");
Console.WriteLine("1.Stack----- RPNCalCulator");
Console.WriteLine("2.SortedList-----the addition of polynomial realized by sortedlist ");
Console.WriteLine("3.GeneralTree----depthtravesal and breathtraval");
Console.WriteLine("4.NaryTree");
Console.WriteLine("5.ExpressionTree");
Console.WriteLine("6.AVLTree");
Console.WriteLine("7.BinaryHeap");
Console.WriteLine("exit--Exit this programme");
//Test();
switch(Console.ReadLine())
{
case "1"://Show Stack
ShowStack_RPNCalCulator();
break;
case "2"://SortedList
ShowSortedList_Polynomial();
break;
case "3":
ShowGeneralTree_travel();
break;
case "4":
ShowNaryTree();//演示一個三叉樹的Attach和Detach
break;
case "5":
ShowExpressionTree();
break;
case "6":
ShowAVLTree();
break;
case "7":
ShowBinaryHeap();
break;
case "exit":
return;
default:
break;
}
}
}
public static void ShowBinaryHeap()
{
//構造一個二叉堆, 包含2,4,6,8,10,12
BinaryHeap bHeap=new BinaryHeap(10);
bHeap.Enqueue(12);
bHeap.Enqueue(10);
bHeap.Enqueue(8);
bHeap.Enqueue(6);
bHeap.Enqueue(4);
bHeap.Enqueue(2);
//測試Dequeue();
while(bHeap.Count!=0)
{
Console.WriteLine(bHeap.DequeueMin().ToString());
}
}
public static void ShowAVLTree()
{
AVLTree testAVL=new AVLTree(5);
testAVL.Insert(1);
testAVL.Insert(3);
testAVL.Insert(7);
testAVL.Insert(8);
testAVL.Insert(9);
testAVL.Insert(10);
testAVL.Insert(11);
PrintVisitor vis=new PrintVisitor();
Tree.InOrder inVis=new DataStructure.Tree.InOrder(vis);
testAVL.DepthFirstTraversal(inVis);
}
public static void ShowExpressionTree()
{
ExpressionTree.PostfixToInfix();
}
public static void ShowNaryTree()
{
//構造一個三叉樹,具體見圖1-2
NaryTree A=new NaryTree(3,"A");
NaryTree B=new NaryTree(3,"B");
NaryTree C=new NaryTree(3,"C");
NaryTree D=new NaryTree(3,"D");
NaryTree E=new NaryTree(3,"E");
B.AttachSubtree(1,D);
B.AttachSubtree(2,E);
A.AttachSubtree(1,B);
A.AttachSubtree(3,C);
//---------------------------
Console.WriteLine("廣度遍歷");
PrintVisitor vis=new PrintVisitor();
A.BreadthFirstTraversal(vis);//廣度遍歷
Console.WriteLine("前序遍歷");
Tree.PreOrder preVisit=new DataStructure.Tree.PreOrder(vis);
A.DepthFirstTraversal(preVisit);
Console.WriteLine("後序遍歷");
Tree.PostOrder postVisit=new DataStructure.Tree.PostOrder(vis);
A.DepthFirstTraversal(postVisit);
Console.WriteLine("中序遍歷");
Tree.InOrder inVisit=new DataStructure.Tree.InOrder(vis);
A.DepthFirstTraversal(inVisit);
}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10794571/viewspace-969619/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 資料結構與演算法系列(一)陣列實現資料結構演算法陣列
- C#資料結構與演算法系列(八):棧(Stack)C#資料結構演算法
- 演算法與資料結構解析-- 系列文章彙總篇演算法資料結構
- 資料結構與演算法——基礎篇(一)資料結構演算法
- C#資料結構與演算法系列(十五):排序演算法(SortAlgorithm)C#資料結構演算法排序Go
- 資料結構與演算法——常用高階資料結構及其Java實現資料結構演算法Java
- 演算法與資料結構系列 ( 二 ) - 實現前的基礎準備演算法資料結構
- 使用C#實現資料結構堆C#資料結構
- 資料結構與演算法系列3資料結構演算法
- 演算法與資料結構-棧(Stack)-Java實現演算法資料結構Java
- 資料結構系列之LRU演算法理論篇資料結構演算法
- 資料結構與演算法-反轉排序資料結構演算法排序
- 《redis設計與實現》1-資料結構與物件篇Redis資料結構物件
- 資料結構與演算法系列 目錄資料結構演算法
- TypeScript演算法與資料結構-陣列篇TypeScript演算法資料結構陣列
- 資料結構與演算法學習-開篇資料結構演算法
- C#資料結構與演算法系列(二十一):希爾排序演算法(ShellSort)C#資料結構演算法排序
- 資料結構系列之單連結串列實現一個簡單的LRU演算法資料結構演算法
- Redis系列文章-資料結構篇Redis資料結構
- 『資料結構與演算法』棧:詳解與程式碼實現資料結構演算法
- 資料結構與演算法----# 一、排序資料結構演算法排序
- C#資料結構與演算法系列(十四):遞迴——八皇后問題(回溯演算法)C#資料結構演算法遞迴
- C# 資料操作系列 - 16 SqlSugar 完結篇C#SqlSugar
- 資料結構與演算法-資料結構(棧)資料結構演算法
- 演算法與資料結構系列 ( 一 ) - 演算法的級別區分理解演算法資料結構
- 資料結構和演算法(一)線性表實現資料結構演算法
- redis資料結構實現(一)Redis資料結構
- 資料結構與演算法 | 棧的實現及應用資料結構演算法
- C#資料結構與演算法5-C# 快速排序C#資料結構演算法排序
- 資料結構與演算法 | 如何實現LRU快取淘汰演算法資料結構演算法快取
- Java資料結構與排序演算法 (一)Java資料結構排序演算法
- 基礎夯實:基礎資料結構與演算法(一)資料結構演算法
- 資料結構與演算法?看這篇就夠了!資料結構演算法
- 前端進階 | 資料結構與演算法之 LeetCode 篇前端資料結構演算法LeetCode
- 資料結構與演算法?看這篇就夠了!!!資料結構演算法
- 資料結構與演算法資料結構演算法
- 資料結構:初識(資料結構、演算法與演算法分析)資料結構演算法
- 資料結構與演算法--簡單棧實現及其應用資料結構演算法
- C#資料結構與演算法1-C# 線性表C#資料結構演算法