資料結構與演算法(C#實現)系列---示範篇(一)

來源:互聯網
上載者:User
資料|資料結構|演算法 資料結構與演算法(C#實現)系列---示範篇(一)

Heavenkiller(原創)

這一篇主要是針對以後各篇的資料類型進行一個實質性的示範。因此希望大傢具體看了各種資料結構的分析之後再看這篇。

主要包括如下幾個方面的示範:

1. 堆棧。 示範了一個利用堆棧作的RPN計算機

2. 排序表。示範了一個利用排序表做的多項式運算式的加法運算

3. 廣義樹。示範了深度遍曆和廣度遍曆

4. N叉樹。示範了N叉樹的產生插入刪除等基本操作

5. 運算式樹狀架構。示範了一個用二叉樹和堆棧做的可以將一個尾碼運算式翻譯為日常中熟悉的中綴運算式的例子

6. AVL樹。示範了基本操作





using System;

using System.Collections;



namespace DataStructure

{

/// <summary>

/// Class1 的摘要說明。

/// </summary>

class Show

{

/// <summary>

/// 應用程式的主進入點。

/// </summary>

[STAThread]

static void Main(string[] args)

{

//

// 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);





}


相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。