版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
C#實(shí)現(xiàn)二叉樹遍歷算法用C#2.0實(shí)現(xiàn)了二叉樹的定義,怎么構(gòu)造一顆已知的二叉樹,用幾種常規(guī)的算法(先序,中序,后序,層次)遍歷二叉樹。希望能給有需要人帶來幫助,也希望能得到大家的指點(diǎn)。有關(guān)C#數(shù)據(jù)結(jié)構(gòu)的書在書店里找到,網(wǎng)上也是極少,如果你有好的學(xué)習(xí)資源別忘了告訴我。先謝了。數(shù)據(jù)結(jié)構(gòu)對(duì)一個(gè)程序員來說,現(xiàn)在是太重要了,數(shù)據(jù)結(jié)構(gòu)學(xué)得好的人,邏輯思維一定很強(qiáng),在程序設(shè)計(jì)的時(shí)候,就不會(huì)覺得太費(fèi)勁了。而且是在設(shè)計(jì)多層應(yīng)用程序的時(shí)候,真是讓人絞盡腦汁啊。趁自己還年輕,趕緊練練腦子。哈哈,咱們盡快進(jìn)入主題吧。本程序中將用到一棵已知的二叉樹如圖(二叉樹圖)所示。下面簡單介紹一下幾種算法和思路:先序遍歷:訪問根結(jié)點(diǎn)按先序遍歷左子樹;按先序遍歷右子樹;4.例如:遍歷已知二叉樹結(jié)果為:A->B->D->G->H->C->E->F
中序遍歷:按中序遍歷左子樹;訪問根結(jié)點(diǎn);按中序遍歷右子樹;例如遍歷已知二叉樹的結(jié)果:B->G->D->H->A->E->C->F后序遍歷:按后序遍歷左子樹;按后序遍歷右子樹;訪問根結(jié)點(diǎn);例如遍歷已知二叉樹的結(jié)果:G->H->D->B->E->F->C->A層次遍歷:從上到下,從左到右遍歷二叉樹的各個(gè)結(jié)點(diǎn)(實(shí)現(xiàn)時(shí)需要借輔助容器);例如遍歷已知二叉樹的結(jié)果:A->B->C->D->E->F->G->H附加整個(gè)解決方案代碼:二叉遍歷算法解決方案usingSystem;usingSystem.Collections.Generic;
usingSystem.Text;namespacestructure二_“二_義〃二叉樹結(jié)點(diǎn)數(shù)據(jù)結(jié)構(gòu)包括數(shù)據(jù)域,左右結(jié)點(diǎn)以及父結(jié)點(diǎn)成員;Tdata;nodes<T>Lnode,Rnode,Pnode;…set{data=value;}get{returndata;}…<5
S_alue;}set{Rnode=value;}:?set{Pnode=value;}publicnodes(){}publicnodes(Tdata)
…;-先序編歷二叉樹#region先序編歷二叉樹Console.WriteLine(rootNode.Data);PreOrdervT>(rootNode.LNode);—#endregion構(gòu)造一棵已知的二叉樹#region構(gòu)造一棵已知的二叉樹
staticnodesvstring>BinTree(){nodes<string>[]binTree=newnodesvstring>[8];〃創(chuàng)建結(jié)點(diǎn)binTree[0]=newnodesvstring>("A");binTree[1]=newnodes<string>("B");binTree[2]=newnodesvstring>("C");binTree[3]=newnodesvstring>("D");binTree[4]=newnodesvstring>("E");binTree[5]=newnodesvstring>("F");binTree[6]=newnodesvstring>("G");binTree[7]=newnodesvstring>("H");〃使用層次遍歷二叉樹的思想,構(gòu)造一個(gè)已知的二叉樹binTree[0].LNode=binTree[1];binTree[0].RNode=binTree[2];binTree[l].RNode=binTree[3];binTree[2].LNode=binTree[4];
binTree[2].RNode=binTree[5];binTree[3].LNode=binTree[6];binTree[3].RNode=binTree[7];〃返回二叉樹的根結(jié)點(diǎn):“"i#endregion中序遍歷二叉樹#region中序遍歷二叉樹MidOrdervT>(rootNode.LNode);Console.WriteLine(rootNode.Data);
#endregion后序遍歷二叉樹#region后序遍歷二叉樹staticvoidAfterOrdervT>(nodesvT>rootNode){if(rootNode!=null){AfterOrdervT>(rootNode.LNode);AfterOrdervT>(rootNode.RNode);Console.WriteLine(rootNode.Data);}}#endregion層次遍歷二叉樹#region層次遍歷二叉樹staticvoidLayerOrdervT>(nodesvT>rootNode){nodes<T>[]Nodes=newnodes<T>[20];intfront=-1;
intrear=-1;rear++;front++;rootNode=Nodes[front];Console.WriteLine(rootNode.Data);i_rear++;if(rootNode.RNode!=null)
rear++;Nodes[rear]=rootNode.RNode;}}}#endregion測試的主方法#region測試的主方法staticvoidMain(string[]args){nodes<string>rootNode=BinTree();Console.WriteLine(”先序遍歷方法遍歷二叉樹:");PreOrdervstring>(rootNode);Console.WriteLine(”中序遍歷方法遍歷二叉樹:");MidOrdervstring>(rootNode);C
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)廠租賃合同范本
- 舞房轉(zhuǎn)讓協(xié)議書
- 延期交租協(xié)議書
- 轉(zhuǎn)租民宿合同范本
- 裝車私聊協(xié)議書
- 英國外貿(mào)協(xié)議書
- 診所用藥協(xié)議書
- 資產(chǎn)權(quán)屬協(xié)議書
- 性侵賠償協(xié)議書
- 藥品招商協(xié)議書
- 2025年《社區(qū)警務(wù)工作規(guī)范(試行)》復(fù)習(xí)測試卷附答案
- 2025秋初中數(shù)學(xué)九年級(jí)上冊(cè)(滬科版 安徽專用)上課課件 21.4 第3課時(shí) 用二次函數(shù)解決拋物線形運(yùn)動(dòng)問題
- 2021年12月大學(xué)英語四級(jí)考試真題及答案(第1套)
- JG/T 387-2012環(huán)氧涂層預(yù)應(yīng)力鋼絞線
- 注塑模具備用件管理制度
- 分期支付工資協(xié)議書
- 2024年南昌大學(xué)第二附屬醫(yī)院招聘筆試真題
- 甲流兒童預(yù)防
- 工業(yè)機(jī)械之光
- 清華大學(xué)《工程倫理》網(wǎng)課習(xí)題及期末考試答案
- DB52T 784-2012 茶假眼小綠葉蟬監(jiān)測與無害化治理技術(shù)規(guī)程
評(píng)論
0/150
提交評(píng)論