




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、湖南涉外經(jīng)濟(jì)學(xué)院課程設(shè)計(jì)報(bào)告課程名稱:數(shù)據(jù)結(jié)構(gòu)報(bào)告題目:二叉樹(shù)的基本操作學(xué)生姓名:肖琳桂、康政、張小東、張帆所在學(xué)院:信息科學(xué)與工程學(xué)院專業(yè)班級(jí):軟工本1402學(xué)生學(xué)號(hào): 144300211、02、14、08指導(dǎo)教師:李春庭2015年 12 月 31日課程設(shè)計(jì)任務(wù)書(shū)報(bào)告題目二叉樹(shù)的基本操作完成時(shí)間2 周肖琳桂專 業(yè)軟工本學(xué)生姓名指導(dǎo)教師李春庭職稱講師康政班級(jí)1402總體設(shè)計(jì)要求和主要功能設(shè)計(jì)一個(gè)程序,實(shí)現(xiàn)二叉樹(shù)的創(chuàng)建以及二叉樹(shù)的遍歷(包括先序遍歷、中序遍歷、后序遍歷和層次遍歷),計(jì)算并輸出二叉樹(shù)的深度和結(jié)點(diǎn)個(gè)數(shù),功能要求:1二叉樹(shù)以二叉鏈表存儲(chǔ),結(jié)點(diǎn)數(shù)據(jù)類型采用字符表示,按二叉樹(shù)的先序遍歷序列
2、創(chuàng)建。2用文本編輯器編寫一個(gè)data.txt的文件 , 包含 3 個(gè)以上創(chuàng)建按二叉樹(shù)的先序遍歷序列 ( 即序列中包含空樹(shù)節(jié)點(diǎn) ) ,每個(gè)序列長(zhǎng)度不少于10 個(gè),在運(yùn)行程序時(shí)自動(dòng)載入,也可以由鍵盤輸入創(chuàng)建二叉樹(shù)。|3菜單功能:創(chuàng)建二叉樹(shù)(二級(jí)菜單說(shuō)明選擇文件中的第幾個(gè),輸出創(chuàng)建二叉樹(shù)的深度及結(jié)點(diǎn)數(shù),若失敗則有相應(yīng)提示),遍歷序列(顯示先序,中序,后序和層次遍歷結(jié)果),結(jié)點(diǎn)的孩子信息,退出系統(tǒng)。工作內(nèi)容及時(shí)間進(jìn)度安排第 17 周:周 1- 周 2:立題、論證方案設(shè)計(jì)周 3- 周 5 :程序設(shè)計(jì)及程序編碼第 18周:周 1- 周 3 :程序調(diào)試周 4- 周 5 :驗(yàn)收答辯摘要本課程設(shè)計(jì)主要說(shuō)明如何在
3、C+編程環(huán)境下實(shí)現(xiàn)二叉樹(shù)的遍歷,遍歷方式包括 : 二叉樹(shù)的先序遍歷、中序遍歷、后序遍歷,層次遍歷等四種遍歷方式。同時(shí),此次課程設(shè)計(jì)還包括了求二叉樹(shù)深度和結(jié)點(diǎn)個(gè)數(shù), 結(jié)點(diǎn)的孩子信息, 以及對(duì)文件的操作,用文件讀取的方式實(shí)現(xiàn)對(duì)二叉樹(shù)的建立。 以通過(guò)此次課程設(shè)計(jì), 使學(xué)生充分掌握樹(shù)的基本操作, 以及對(duì)線性存儲(chǔ)結(jié)構(gòu)的理解。 同時(shí),在對(duì)樹(shù)的遍歷的操作過(guò)程中,同樣是運(yùn)用遞歸的方式實(shí)現(xiàn)遍歷, 在對(duì)樹(shù)實(shí)現(xiàn)層次操作的時(shí)候, 要求用循環(huán)隊(duì)列的操作方式來(lái)實(shí)現(xiàn)層次遍歷。 此次課程設(shè)計(jì)對(duì)數(shù)據(jù)結(jié)構(gòu)內(nèi)容綜合性的運(yùn)用的要求較高。關(guān)鍵詞:二叉樹(shù),先序遍歷, 中序遍歷,后序遍歷, 層次遍歷,節(jié)點(diǎn),線性存儲(chǔ) , 節(jié)點(diǎn)的孩子信息目錄
4、課程設(shè)計(jì)任務(wù)書(shū)1一、需求分析41問(wèn)題描述42功能要求4二、概要設(shè)計(jì)51. 總體設(shè)計(jì)圖52. 數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)53. 算法設(shè)計(jì)54. 主要模塊及模塊之間的關(guān)系5三、詳細(xì)設(shè)計(jì)61. 結(jié)構(gòu)體(或類)設(shè)計(jì)62.主要模塊實(shí)現(xiàn)的流程圖63. 算法設(shè)計(jì)7四、測(cè)試運(yùn)行81登錄和主界面運(yùn)行效果圖82運(yùn)行說(shuō)明83.運(yùn)行效果圖8五、結(jié)論與心得101. 總體評(píng)價(jià)102. 所做的工作及體會(huì)10六、程序附錄(源代碼)13七、參考文獻(xiàn)20一、需求分析1問(wèn)題描述設(shè)計(jì)一個(gè)二叉樹(shù)。 二叉樹(shù)形象地說(shuō)即樹(shù)中每個(gè)節(jié)點(diǎn)最多只有兩個(gè)分支, 它是一種重要的數(shù)據(jù)類型。 可以運(yùn)用于建立家譜, 公司所有的員工的職位圖, 以及各種事物的分類和各種機(jī)構(gòu)的
5、職位圖表等。二叉樹(shù)是通過(guò)建立一個(gè)鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu),達(dá)到能夠?qū)崿F(xiàn)前序遍歷,中序遍歷,后序遍歷,層次遍歷。以及能夠從輸入的數(shù)據(jù)中得知二叉樹(shù)的葉子結(jié)點(diǎn)的個(gè)數(shù), 二叉樹(shù)的深度。 在此,二叉樹(shù)的每一個(gè)結(jié)點(diǎn)中必須包括:值域,左指針域,右指針域。我們抽象出下列問(wèn)題: 實(shí)現(xiàn)文件操作,運(yùn)用文件輸入流, 將已經(jīng)寫好二叉樹(shù)序列的 txt 文本文件,加載到程序中, 實(shí)現(xiàn)文件創(chuàng)建二叉樹(shù)。然后采用鏈表存儲(chǔ)的方式遍歷二叉樹(shù)(先序遍歷、中序遍歷、后序遍歷、層次遍歷)。層次遍歷運(yùn)用循環(huán)隊(duì)列的方法實(shí)現(xiàn),需要重新定義隊(duì)頭和隊(duì)尾,以及隊(duì)列的最大長(zhǎng)度,并且在屏幕上實(shí)現(xiàn)輸出顯示。2功能要求(1) 用菜單的形式實(shí)現(xiàn)操作界面,提供( 14)個(gè)功
6、能選項(xiàng),功能分別為創(chuàng)建二叉樹(shù)、遍歷序列、節(jié)點(diǎn)的孩子信息、退出系統(tǒng)。(2) 創(chuàng)建二叉樹(shù)。要求用文件讀取和鍵盤輸入兩種不同的方式實(shí)現(xiàn)二叉樹(shù)的創(chuàng)建。二級(jí)菜單說(shuō)明,輸出創(chuàng)建二叉樹(shù)的深度及結(jié)點(diǎn)數(shù),若失敗則有相應(yīng)提示。(3) 遍歷序列。顯示先序,中序,后序和層次遍歷結(jié)果。先序遍歷、中序遍歷、后序遍歷用遞歸的方法實(shí)現(xiàn)遍歷。層次遍歷,用循環(huán)隊(duì)列的方法實(shí)現(xiàn)。(4) 每次實(shí)現(xiàn)一項(xiàng)操作之后,要有相應(yīng)的提示返回菜單。4二、概要設(shè)計(jì)1. 總體設(shè)計(jì)圖主菜單創(chuàng)建二叉樹(shù)遍歷序列節(jié)點(diǎn)的孩子信退出系統(tǒng)息鍵文先中后層盤件序序序次輸輸遍遍遍遍入入歷歷歷歷2. 數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)元素為字符, 邏輯結(jié)構(gòu)為樹(shù)形結(jié)構(gòu), 存儲(chǔ)結(jié)構(gòu)為二叉鏈?zhǔn)酱鎯?chǔ)
7、, 系統(tǒng)操作的數(shù)據(jù)元素主要是創(chuàng)建一個(gè)二叉樹(shù),遍歷序列。3. 算法設(shè)計(jì)本系統(tǒng)主要用到的算法有先序遍歷、中序遍歷、后序遍歷、層次遍歷、創(chuàng)建二叉樹(shù)和查找節(jié)點(diǎn)。從子菜單界面只能返回到主菜單界面,而不是退出程序。4. 主要模塊及模塊之間的關(guān)系運(yùn)行程序后直接進(jìn)入“菜單主界面”模塊,菜單顯示分為4 個(gè)模塊,(14)分別為創(chuàng)建二叉樹(shù)、遍歷序列、節(jié)點(diǎn)的孩子信息、退出系統(tǒng)。主界面中的各個(gè)模塊都是獨(dú)立運(yùn)行,每完成一項(xiàng)操作后, 返回主菜單模塊。通過(guò)相應(yīng)定義的函數(shù)(外部接口)實(shí)現(xiàn),內(nèi)部數(shù)據(jù)的改變由模塊內(nèi)部完成。5三、詳細(xì)設(shè)計(jì)1. 結(jié)構(gòu)體(或類)設(shè)計(jì)typedef char TElemType;typedef struc
8、t BiTNodeTElemType date;struct BiTNode *lchild,*rchild; BiTNode,*BiTree;2. 主要模塊實(shí)現(xiàn)的流程圖開(kāi)始主菜單界面輸入選擇( 14)Case=sel?Case=4退出系統(tǒng)Case=1創(chuàng)建二叉樹(shù)Case=2遍歷序列先序遍歷中序遍歷后序遍歷層次遍歷Case=3結(jié)點(diǎn)的孩子信 息63. 算法設(shè)計(jì)先序遍歷:void PreOrderTraverse(BiTree T) if(T) cout<<T->date; PreOrderTraverse(T->lchild); PreOrderTraverse(T->
9、;rchild); 中序遍歷:void InOrderTraver(BiTree T) if(T) InOrderTraver(T->lchild); cout<<T->date; InOrderTraver(T->rchild); 后序遍歷:void PostOrderTraver(BiTree T) if(T) PostOrderTraver(T->lchild); PostOrderTraver(T->rchild); cout<<T->date; 層次遍歷:void ccbl(BiTNode *b) BiTNode *p;Bi
10、TNode *qMaxSize;int qm,h;qm=h=-1;h+; qh=b;while(qm != h) qm=(qm+1)%MaxSize; p=qqm; printf("%c ",p->date); if(p->lchild!=NULL) h=(h+1)%MaxSize;qh=p->lchild; if(p->rchild!=NULL) h=(h+1)%MaxSize; qh=p->rchild; 7四、測(cè)試運(yùn)行1登錄和主界面運(yùn)行效果圖2運(yùn)行說(shuō)明主程序運(yùn)行后,直接到菜單選擇界面。其中有(1 4 個(gè)選項(xiàng)可以選擇 )1. 創(chuàng)建二叉樹(shù) 2
11、. 遍歷序列 3. 節(jié)點(diǎn)的孩子信息4. 退出系統(tǒng)。除退出以外 , 每個(gè)功能模塊運(yùn)行完后,返回到主菜單界面,每個(gè)界面相互獨(dú)立。3. 運(yùn)行效果圖8表 學(xué)生情況統(tǒng)計(jì)表序姓名性出生日期學(xué)號(hào)專業(yè)聯(lián)系電話備注號(hào)別1康政男1994.12144300202軟件工長(zhǎng)2肖琳桂男1996.08144300211軟件工程157175144943張小東男1994.07144300214軟件工程4張帆男1995.08144300208軟件工程9五、結(jié)論與心得1. 總體評(píng)價(jià)在此次的課程設(shè)計(jì)中, 由于不夠細(xì)心, 在程序設(shè)計(jì)中犯了一些錯(cuò)誤, 花了挺多的時(shí)間。但是經(jīng)過(guò)一番思考并且在老師的幫助下, 找到了
12、導(dǎo)致程序錯(cuò)誤的原因,經(jīng)過(guò)幾次修改和調(diào)試, 程序能正常運(yùn)行, 并且能夠完成課程設(shè)計(jì)任務(wù)中的大部分功能。同時(shí)在此次的課程設(shè)計(jì)中讓我更深刻的了解了二叉樹(shù)的基本操作, 增加了對(duì)專業(yè)只是學(xué)習(xí)的興趣。 我想在以后的學(xué)習(xí)中, 我們會(huì)繼續(xù)努力, 希望在計(jì)算機(jī)方面有好的成績(jī), 也感謝老師給我們這次課程設(shè)計(jì)的機(jī)會(huì), 讓我們認(rèn)識(shí)到了自身的不足,讓我們能夠不斷地完善自己 !2.所做的工作及體會(huì)肖琳桂:編寫程序和課程設(shè)計(jì)報(bào)告。 課程設(shè)計(jì)中我主要擔(dān)任程序設(shè)計(jì)的編寫和設(shè)計(jì)報(bào)告的編寫工作, 經(jīng)過(guò)兩個(gè)星期的上機(jī)實(shí)踐學(xué)習(xí), 使我對(duì)數(shù)據(jù)結(jié)構(gòu)有了更進(jìn)一步的認(rèn)識(shí)和理解,也知道了要想學(xué)好它要重在實(shí)踐, 要通過(guò)不斷的上機(jī)操作才能更好地學(xué)習(xí)
13、它。通過(guò)實(shí)踐我發(fā)現(xiàn)我的很多不足之處, 然感覺(jué)理論上已經(jīng)掌握, 但在運(yùn)用到實(shí)踐的過(guò)程中仍有意想不到的困惑, 因?yàn)樽约簩?duì)知識(shí)點(diǎn)的掌握不夠熟悉, 但通過(guò)學(xué)習(xí)有很大改進(jìn)。在這次課程設(shè)計(jì)中使我知道了二又樹(shù)的先序、 中序、后序、層次遍歷。同時(shí),還包括了求二叉樹(shù)深度和結(jié)點(diǎn)個(gè)數(shù), 結(jié)點(diǎn)的孩子信息, 以及對(duì)文件的操作, 用文件讀取的方式實(shí)現(xiàn)對(duì)二叉樹(shù)的建立。 充分掌握樹(shù)的基本操作, 以及對(duì)線性存儲(chǔ)結(jié)構(gòu)的理解。也培養(yǎng)了我如何去把握一件事情, 如何去做一件事情, 又如何完成一件事情的方法和技巧。在設(shè)計(jì)過(guò)程中,和同學(xué)們相互探討,相互學(xué)習(xí),相互監(jiān)督。我學(xué)會(huì)了運(yùn)籌帷幌,學(xué)會(huì)了寬容,學(xué)會(huì)了理解,也學(xué)會(huì)了做人與處世,這次課程設(shè)
14、計(jì)對(duì)找來(lái)說(shuō)受益良多。在今后的日子里, 我會(huì)認(rèn)真對(duì)待每一件事情, 爭(zhēng)取做到最好, 努力將知識(shí)與實(shí)踐相結(jié)合,不斷鞏固,加深所學(xué)的知識(shí),做到學(xué)以致用。另外感謝老師的細(xì)心教導(dǎo),以及同學(xué)們的幫助。10康政:編寫程序和課程設(shè)計(jì)報(bào)告。 我在小組中做了編寫程序和撰寫報(bào)告的工作。 在編寫程序時(shí),遇到很多困難, 例如缺少聲明,調(diào)用函數(shù)錯(cuò)誤等等。 通過(guò)網(wǎng)上搜查,查詢資料以及老師的指點(diǎn)幫助, 完成了很多任務(wù)。 作為基礎(chǔ)不是很好的學(xué)生, 我在克服自己知識(shí)不足的過(guò)程中也在努力學(xué)習(xí)新的知識(shí), 運(yùn)用不同的原理編寫出不同的算法。也學(xué)習(xí)到,算法不能盲目抄襲,很多東西是不同的,必須通過(guò)自己的思考和努力的鉆研才能寫出一套完整的代碼,
15、 不可心急,越是急越不可能精細(xì)的完成任務(wù)。撰寫報(bào)告的時(shí)候, 很多地方因細(xì)節(jié)問(wèn)題處理不好導(dǎo)致出了大大小小很多漏洞,不能很精細(xì)的完成指定的任務(wù)。從中我也明白了,做一件事,尤其是耗時(shí)的編寫程序的問(wèn)題,不能心急也不能馬虎,也許一點(diǎn)點(diǎn)出錯(cuò)整個(gè)程序就會(huì)崩潰,還要重新一點(diǎn)點(diǎn)的檢查才能找出問(wèn)題, 大大降低了辦事效率。 所以,今后要做的第一件事是慢慢鞏固檢出, 打好根基。第二件事是沉下心來(lái)認(rèn)真做事, 不能毛手毛腳,從頭到尾認(rèn)真細(xì)致的做下去, 避免出錯(cuò)惹出更多的麻煩。 這次的程序設(shè)計(jì)使我受益匪淺,學(xué)到了很多,做了很多。希望以后可以更多的做這種任務(wù),鞏固知識(shí),學(xué)習(xí)新的知識(shí),有了這些經(jīng)驗(yàn)可以做的更好。張小東:查找資料
16、和打印。 這次我在小組中做的事情是查詢資料和打印排版。 雖然因?yàn)槲业膶I(yè)底子差一點(diǎn), 現(xiàn)在暫時(shí)只能在程序設(shè)計(jì)時(shí)查找一些需要用到的專業(yè)資料,幫助組員完成設(shè)計(jì), 但我相信下一次我不會(huì)僅此于此。 這次程序設(shè)計(jì)我的收獲還是很大了, 讓我懂得了學(xué)好專業(yè)知識(shí), 并不是自己想象中的難, 而是你自己是否去努力了。在查找資料的過(guò)程中, 我是邊查邊學(xué)自己不會(huì)的知識(shí)點(diǎn)。 查找途中也遇到了一些當(dāng)時(shí)不能理解的知識(shí)點(diǎn), 但經(jīng)過(guò)同學(xué)的細(xì)心解答, 最后一些難掌握的知識(shí)點(diǎn)都被基本掌握。 這讓我懂得編程過(guò)程需要很大的耐心, 而且要有良好的思維和扎實(shí)的專業(yè)基礎(chǔ)知識(shí),所以我需要努力的學(xué)習(xí),發(fā)現(xiàn)自身不足之處并努力改正他,逐步提高自身的
17、能力, 不斷取得進(jìn)步。 通過(guò)這次課程設(shè)計(jì), 我認(rèn)識(shí)到知識(shí)運(yùn)用的重要性,并且努力加深對(duì)基礎(chǔ)知識(shí)的理解, 從中了解自己需要學(xué)習(xí)的東西并學(xué)會(huì)自學(xué)。作為一名計(jì)算機(jī)專業(yè)的學(xué)生,今后我會(huì)加緊學(xué)習(xí),學(xué)好專業(yè)知識(shí),為將來(lái)打下堅(jiān)實(shí)的基礎(chǔ)。11張帆:查找資料和打印。 這次我在小組中做的事情是查詢資料, 打印排版。 雖然這些工作并不是主要任務(wù), 但是我用心對(duì)待, 認(rèn)真為做程序的同學(xué)查找資料, 為他們挑選所需要的代碼以及算法, 及時(shí)反饋給他們信息。 因?yàn)榛A(chǔ)不是很好, 經(jīng)常會(huì)剪裁到一些不是很合適的代碼, 我們通過(guò)共同分析, 共同篩選, 最終也獲得了很多收獲。通過(guò)和他們一起分析代碼, 我也漲了很多知識(shí)。 懂的了二叉樹(shù)的
18、算法,數(shù)據(jù)類型等等。 報(bào)告的排版也是一項(xiàng)需要耐心的工作, 通過(guò)晚上的時(shí)間, 我認(rèn)認(rèn)真真的對(duì)所寫的設(shè)計(jì)報(bào)告進(jìn)行了排版, 把一些不符合文本框架或者有代碼錯(cuò)誤的都進(jìn)行了細(xì)致的修改, 保證了設(shè)計(jì)報(bào)告的質(zhì)量。 從這次的程序設(shè)計(jì)中, 我學(xué)到了很多。認(rèn)認(rèn)真真做一件事情不會(huì)有錯(cuò), 用什么態(tài)度做什么事會(huì)得到什么樣的回報(bào)。并且我認(rèn)為數(shù)據(jù)結(jié)果也不是很難的科目,認(rèn)真花時(shí)間去琢磨一定不會(huì)落下很多。所以以后我會(huì)細(xì)致做事,并在閑暇時(shí)間補(bǔ)習(xí)功課,爭(zhēng)取盡快補(bǔ)習(xí)好原來(lái)的知識(shí),再學(xué)習(xí)新的知識(shí)為自己充電。12六、程序附錄(源代碼)#include<iostream>#include<fstream>#incl
19、ude<stdlib.h>using namespace std;typedef char TElemType;#define MaxSize 1000int i;typedef struct BiTNodeTElemType date;struct BiTNode *lchild,*rchild;BiTNode,*BiTree;void Destory(BiTree &T);/函數(shù)聲明char input255;void Interface();void sjecs(BiTree &T);void jp(BiTree &T);/鍵盤void wj(BiTr
20、ee &T);/文件void CreateBiTree(BiTree &T);int Count(BiTree T);int Deep(BiTree T);void PreOrderTraverse(BiTree T);/先序void InOrderTraver(BiTree T);/中序void PostOrderTraver(BiTree T);/后序void ccbl(BiTNode *b);/層次遍歷void blxljm();void locate(BiTree T,char x);void main()/主函數(shù)Interface();BiTree T=NULL;bo
21、ol End=false;char sel;13char x;int p=1;int q=1;doInterface();fflush(stdin);char select=cin.get();system("cls");switch(select)case'1':cout<<" 創(chuàng)建二叉樹(shù): n"sjecs(T);break; case'2': cout<<"nt遍歷序列 n"doblxljm();cout<<"n選擇: "fflush(stdi
22、n);sel=cin.get();p=1;switch(sel)case'1':cout<<"n先序遍歷二叉樹(shù)的輸出順序:n"PreOrderTraverse(T);cout<<"n"system("pause");system("cls");break;case'2':cout<<"n中 序 遍 歷 二 叉 樹(shù) 的 輸 出 順 序 :n"InOrderTraver(T);cout<<"n"sys
23、tem("pause");system("cls");break;case'3':cout<<"n后 序 遍 歷 二 叉 樹(shù) 的 輸 出 順 序 :n"PostOrderTraver(T);cout<<"n"system("pause");system("cls");break ;case'4':cout<<"n層 次 遍 歷 二 叉 樹(shù) 的 輸 出 順 序 : n"ccbl(T);cou
24、t<<"n"system("pause");system("cls");break;case'5': p=0;while(p);break;case'3': do system("cls");q=1;14cout<<"n-結(jié)點(diǎn)的孩子信息:-n"cout<<"(如果節(jié)點(diǎn)不存在 , 不返回任何信息,按任意鍵返回子菜單) n"cout<<"輸入要查找的節(jié)點(diǎn): "cin>>
25、x;locate(T,x);system("pause");system("cls");cout<<"n-菜單信息: -n"cout<<"nt0.輸入返回主菜單 n"cout<<"t1.繼續(xù)查找節(jié)點(diǎn) n"docout<<"t請(qǐng)選擇: "cin>>q;if(q!=0&&q!=1) cout<<"輸入格式不對(duì)請(qǐng)重新輸入n"while(q!=0&&q!=1);
26、while(q);break;case'4':End=true;system("pause");while(!End);void locate(BiTree T,char x) /在二叉樹(shù) T 中查找值為 x 的節(jié)點(diǎn)BiTree p;p=T;if(T=NULL) return;else if(T->date=x)cout<<p->date;if(T->lchild)cout<<"t"<<"節(jié)點(diǎn)的左孩子:"<<T->lchild->date&l
27、t;<"n"else cout<<"t"<<"節(jié)點(diǎn)沒(méi)有左孩子 n"if(T->rchild)cout<<"t節(jié)點(diǎn)的右孩子:"<<T->rchild->date<<"n"else cout<<"t"<<"節(jié)點(diǎn)沒(méi)有右孩子 n"else p=T->lchild;15if(p) locate(T->lchild,x);locate(T->r
28、child,x);void Interface()/菜單界面函數(shù)system("cls");cout<<"nt-遍歷序列 -n"cout<<"tt1.創(chuàng)建二叉樹(shù) n"cout<<"tt2.遍歷序列 n"cout<<"tt3.結(jié)點(diǎn)的孩子信息 n"cout<<"tt4.退出系統(tǒng) n"cout<<"tt請(qǐng)選擇( 14): "cout<<"nt-n"void b
29、lxljm()/遍歷序列界面函數(shù)system("cls");cout<<"nt-二叉樹(shù)-n"cout<<"t(如果沒(méi)創(chuàng)建二叉樹(shù) , 不返回任何信息,按5 返回主菜單) n"cout<<"tt1.先序遍歷二叉樹(shù) n"cout<<"tt2.中序遍歷二叉樹(shù) n"cout<<"tt3.后序遍歷二叉樹(shù) n"cout<<"tt4.層次遍歷二叉樹(shù) n"cout<<"tt5.返回
30、主菜單 n"cout<<"tt請(qǐng)選擇( 15): "cout<<"nt-n"int Count(BiTree T)/計(jì)算節(jié)點(diǎn)數(shù)量if(T=NULL)return 0;return 1+Count(T->lchild)+Count(T->rchild);16int Deep(BiTree T)/計(jì)算二叉樹(shù)的度if(T=NULL)return 0;int u=Deep(T->lchild);int v=Deep(T->rchild);if(u>v)return (u+1);return (v+1
31、);void sjecs(BiTree &T)/選擇輸入模式 , 新建二叉樹(shù)bool End=false;if(T)Destory(T);T=NULL;cout<<" 請(qǐng)選擇輸入二叉樹(shù)序列模式:( 1:鍵盤輸入 2. 文件輸入 3. 返回主菜單) "<<endl;dochar Selection=cin.get();switch( Selection)case'1': jp(T);break;case'2':wj(T);break;case'3':End=true;while (!End);vo
32、id jp(BiTree &T)/鍵盤輸入cout<<" 輸入按先序建立二叉樹(shù)結(jié)點(diǎn)序列:t"cout<<" 例如 :ABDECFHGIJn"cout<<" 輸入 :"cin>>input;int i=0;CreateBiTree(T);int num=Count(T);int deep=Deep(T);17cout<<"二叉樹(shù)創(chuàng)建成功! n"cout<<"此二叉樹(shù)共有 "<<num<<&quo
33、t;個(gè)結(jié)點(diǎn) n"cout<<"且該二叉樹(shù)的深度為: "<< deep<<"(按 3 返回主菜單界面)n"cout<<" 請(qǐng)輸入選項(xiàng): "void wj(BiTree &T)/文件輸入ifstream fi("a.txt");if(!fi)cout<<"數(shù)據(jù)文件不存在! n"exit(0);fi>>input;int i=0;CreateBiTree(T);int num=Count(T);int deep=Deep(T);cout<<"二叉樹(shù)創(chuàng)建成功! n"cout<<"此二叉樹(shù)共有 "<<num<<"個(gè)結(jié)點(diǎn) n"cout<<"且該二叉樹(shù)的深度為: "<< dee
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 法律文書(shū)要素提取員考試試卷及答案
- 2025年氣液動(dòng)閥門、電磁閥、自鎖閥項(xiàng)目建議書(shū)
- 消費(fèi)者保護(hù)工作總結(jié)
- 消防員年末工作個(gè)人總結(jié)
- 金融行業(yè)工作計(jì)劃范文5篇
- 2025年碳纖維預(yù)浸布合作協(xié)議書(shū)
- 2025年廂式改裝車、特種車輛合作協(xié)議書(shū)
- 2025年高純超細(xì)石英粉合作協(xié)議書(shū)
- 2025年沐浴清潔海綿項(xiàng)目合作計(jì)劃書(shū)
- 智慧城市背景下智能垃圾分類系統(tǒng)的政策支持與市場(chǎng)響應(yīng)
- 2025年云南普洱市墨江天下一雙文旅體育集團(tuán)有限公司招聘筆試參考題庫(kù)附帶答案詳解
- GB/T 28731-2012固體生物質(zhì)燃料工業(yè)分析方法
- GB/T 18391.5-2009信息技術(shù)元數(shù)據(jù)注冊(cè)系統(tǒng)(MDR)第5部分:命名和標(biāo)識(shí)原則
- 第二季度護(hù)理紅黃警示及核心制度試題含答案
- 有機(jī)廢棄物資源化利用課件
- 護(hù)理工作中的人文關(guān)懷課件
- 住院患者身份確認(rèn)表
- 2023年度萬(wàn)科集團(tuán)合格供應(yīng)商名錄
- 水合肼項(xiàng)目安全評(píng)價(jià)報(bào)告
- 新版機(jī)動(dòng)車檢驗(yàn)檢測(cè)機(jī)構(gòu)程序文件模板
- GB∕T 1001.1-2021 標(biāo)稱電壓高于1000V的架空線路絕緣子 第1部分:交流系統(tǒng)用瓷或玻璃絕緣子元件 定義、試驗(yàn)方法和判定準(zhǔn)則
評(píng)論
0/150
提交評(píng)論