版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
C#實現(xiàn)二叉樹遍歷算法用C#2.0實現(xiàn)了二叉樹的定義,怎么構(gòu)造一顆已知的二叉樹,用幾種常規(guī)的算法(先序,中序,后序,層次)遍歷二叉樹。希望能給有需要人帶來幫助,也希望能得到大家的指點。有關(guān)C#數(shù)據(jù)結(jié)構(gòu)的書在書店里找到,網(wǎng)上也是極少,如果你有好的學(xué)習(xí)資源別忘了告訴我。先謝了。數(shù)據(jù)結(jié)構(gòu)對一個程序員來說,現(xiàn)在是太重要了,數(shù)據(jù)結(jié)構(gòu)學(xué)得好的人,邏輯思維一定很強,在程序設(shè)計的時候,就不會覺得太費勁了。而且是在設(shè)計多層應(yīng)用程序的時候,真是讓人絞盡腦汁啊。趁自己還年輕,趕緊練練腦子。哈哈,咱們盡快進(jìn)入主題吧。本程序中將用到一棵已知的二叉樹如圖(二叉樹圖)所示。下面簡單介紹一下幾種算法和思路:先序遍歷:訪問根結(jié)點按先序遍歷左子樹;按先序遍歷右子樹;4.例如:遍歷已知二叉樹結(jié)果為:A->B->D->G->H->C->E->F
中序遍歷:按中序遍歷左子樹;訪問根結(jié)點;按中序遍歷右子樹;例如遍歷已知二叉樹的結(jié)果:B->G->D->H->A->E->C->F后序遍歷:按后序遍歷左子樹;按后序遍歷右子樹;訪問根結(jié)點;例如遍歷已知二叉樹的結(jié)果:G->H->D->B->E->F->C->A層次遍歷:從上到下,從左到右遍歷二叉樹的各個結(jié)點(實現(xiàn)時需要借輔助容器);例如遍歷已知二叉樹的結(jié)果:A->B->C->D->E->F->G->H附加整個解決方案代碼:二叉遍歷算法解決方案usingSystem;usingSystem.Collections.Generic;
usingSystem.Text;namespacestructure二_“二_義〃二叉樹結(jié)點數(shù)據(jù)結(jié)構(gòu)包括數(shù)據(jù)域,左右結(jié)點以及父結(jié)點成員;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é)點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)造一個已知的二叉樹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é)點:“"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等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度直升機救援駕駛員勞動合同示范文本3篇
- 2025年陜教新版必修2物理上冊月考試卷含答案
- 2025年華東師大版六年級語文上冊階段測試試卷
- 2025年北師大版高三化學(xué)下冊階段測試試卷含答案
- 2025年外研銜接版九年級物理下冊階段測試試卷含答案
- 2025年上教版八年級科學(xué)上冊月考試卷
- 2025年冀教版五年級英語下冊階段測試試卷含答案
- 2025年人教B版選擇性必修1物理上冊月考試卷含答案
- 2025年度視頻內(nèi)容制作與網(wǎng)絡(luò)版權(quán)保護(hù)合同2篇
- 2025年人教版三年級英語上冊階段測試試卷含答案
- 食品進(jìn)駐超市的談判計劃書
- 物資到貨驗收流程與規(guī)范培訓(xùn)課件
- dcm法加固水下軟基施工過程監(jiān)控與質(zhì)量控制
- 2024屆河北省石家莊二中數(shù)學(xué)高一第二學(xué)期期末學(xué)業(yè)水平測試試題含解析
- 辦公區(qū)域巡檢與安全檢查規(guī)定
- 宮頸癌篩查及預(yù)防講課課件
- 履行法定義務(wù)糾正違法行為的模板
- 《跟單信用證統(tǒng)一慣例》UCP600中英文對照版
- 談美談美書簡
- 2023年數(shù)學(xué)競賽AMC8試卷(含答案)
- 2023年人民日報社招聘應(yīng)屆高校畢業(yè)生85人筆試參考題庫(共500題)答案詳解版
評論
0/150
提交評論