版權(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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度房屋買賣定金協(xié)議智能家居系統(tǒng)互聯(lián)互通合同
- 2025年度汽車租賃服務(wù)經(jīng)銷商授權(quán)協(xié)議
- 2025年度離職員工離職后企業(yè)法律風(fēng)險防控及合規(guī)管理協(xié)議
- 2025年度二零二五年度門面房使用權(quán)租賃與轉(zhuǎn)讓合同
- 2025年度遺產(chǎn)繼承遺產(chǎn)繼承權(quán)爭議解決合同
- 2025年度門面租賃合同電子版(含租賃期滿資產(chǎn)評估及補償)
- 二零二五年度船舶交易風(fēng)險評估合同
- 2025年度模具行業(yè)人才培訓(xùn)與購銷合同4篇
- 2025年度私人住宅出售與周邊配套設(shè)施合同
- 二零二五年度診所醫(yī)師聘用合同(含醫(yī)療設(shè)備租賃)
- 書籍小兵張嘎課件
- 藝術(shù)哲學(xué):美是如何誕生的學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 北京海淀區(qū)2025屆高三下第一次模擬語文試題含解析
- 量子醫(yī)學(xué)治療學(xué)行業(yè)投資機會分析與策略研究報告
- 多重耐藥菌病人的管理-(1)課件
- (高清版)TDT 1056-2019 縣級國土資源調(diào)查生產(chǎn)成本定額
- 環(huán)境監(jiān)測對環(huán)境保護的意義
- 2023年數(shù)學(xué)競賽AMC8試卷(含答案)
- 神經(jīng)外科課件:神經(jīng)外科急重癥
- 2023年十天突破公務(wù)員面試
- 《瘋狂動物城》中英文對照(全本臺詞)
評論
0/150
提交評論