国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

數據結構與算法(C#實現)系列---演示篇(一)

2024-07-21 02:23:51
字體:
來源:轉載
供稿:網友
數據結構與算法(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);





}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 耿马| 屯门区| 聂荣县| 桦甸市| 新龙县| 锦州市| 白朗县| 德惠市| 卢湾区| 新兴县| 交城县| 仪陇县| 冕宁县| 西林县| 宜良县| 民县| 葫芦岛市| 绍兴市| 延川县| 滕州市| 恩平市| 沅陵县| 蒙自县| 齐齐哈尔市| 民县| 苍溪县| 北京市| 巴青县| 本溪市| 郓城县| 淅川县| 阿图什市| 阜宁县| 淮南市| 弋阳县| 阿巴嘎旗| 文山县| 武威市| 侯马市| 襄樊市| 黄大仙区|