下載本文檔
版權(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)告題目:二叉樹的基本操作學(xué)生姓名:肖琳桂、康政、張小東、張帆所在學(xué)院:信息科學(xué)與工程學(xué)院專業(yè)班級(jí): 軟工本1402學(xué)生學(xué)號(hào):144300211、02、14、08指導(dǎo)教師:指春庭2015年12月31日課程設(shè)計(jì)任務(wù)書報(bào)告題目一叉樹的基本操作完成時(shí)間2周學(xué)生姓名肖琳桂康政專業(yè)班級(jí)軟工本1402指導(dǎo)教師李春庭職稱講師總體設(shè)計(jì)要求和主要功能設(shè)一個(gè)程序,實(shí)現(xiàn)二叉樹的創(chuàng)建以及二叉樹的遍歷(包括先序遍歷、中序遍 歷、后序遍歷和層次遍歷),計(jì)算并輸出二叉樹的深度和結(jié)點(diǎn)個(gè)數(shù),功能要求:1 .二叉樹以二叉鏈表存儲(chǔ),結(jié)點(diǎn)數(shù)據(jù)類型采用字符/示,按二叉樹的先序遍 歷
2、序列創(chuàng)建。2 .用文本編輯器編寫一個(gè) data.txt的文件,包含3個(gè)以上創(chuàng)建按二叉樹的先 序遍歷序列(即序列中包含空樹節(jié)點(diǎn)),每個(gè)序列長(zhǎng)度不少于10個(gè),在運(yùn)行程序時(shí) 自動(dòng)載入,也可以由鍵盤輸入創(chuàng)建二叉樹。|3 .菜單功能:創(chuàng)建二叉樹(二級(jí)菜單說(shuō)明 選擇文件中的第幾個(gè),輸出創(chuàng)建二 叉樹的深度及結(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ō)明如何在 C+與程環(huán)境下實(shí)現(xiàn)二
3、叉樹的遍歷,遍歷方式包 括:二叉樹的先序遍歷、中序遍歷、后序遍歷,層次遍歷等四種遍歷方式。同時(shí), 此次課程設(shè)計(jì)還包括了求二叉樹深度和結(jié)點(diǎn)個(gè)數(shù),結(jié)點(diǎn)的孩子信息,以及對(duì)文件的操作,用文件讀取的方式實(shí)現(xiàn)對(duì)二叉樹的建立。 以通過(guò)此次課程設(shè)計(jì),使學(xué)生 充分掌握樹的基本操作,以及對(duì)線性存儲(chǔ)結(jié)構(gòu)的理解。同時(shí),在對(duì)樹的遍歷的操 作過(guò)程中,同樣是運(yùn)用遞歸的方式實(shí)現(xiàn)遍歷, 在對(duì)樹實(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)鍵詞:二叉樹,先序遍歷,中序遍歷,后序遍歷,層次遍歷,節(jié)點(diǎn),線性存儲(chǔ),節(jié)點(diǎn)的孩子信息Word完美格式目 錄課程設(shè)計(jì)任務(wù)書
4、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è)二叉樹。二叉樹形象地說(shuō)即樹中每個(gè)節(jié)點(diǎn)最多只有兩個(gè)分支,它是 一種重要的數(shù)據(jù)類型。可以運(yùn)用于建立家譜,公司所有的
5、員工的職位圖,以及各 種事物的分類和各種機(jī)構(gòu)的職位圖表等。二叉樹是通過(guò)建立一個(gè)鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu), 達(dá)到能夠?qū)崿F(xiàn)前序遍歷,中序遍歷,后序遍歷,層次遍歷。以及能夠從輸入的數(shù) 據(jù)中得知二叉樹的葉子結(jié)點(diǎn)的個(gè)數(shù), 二叉樹的深度。在此,二叉樹的每一個(gè)結(jié)點(diǎn) 中必須包括:值域,左指針域,右指針域。我們抽象出下列問(wèn)題:實(shí)現(xiàn)文件操作, 運(yùn)用文件輸入流,將已經(jīng)寫好二叉樹序列的txt文本文件,加載到程序中,實(shí)現(xiàn) 文件創(chuàng)建二叉樹。然后采用鏈表存儲(chǔ)的方式遍歷二叉樹(先序遍歷、中序遍歷、 后序遍歷、層次遍歷)。層次遍歷運(yùn)用循環(huán)隊(duì)列的方法實(shí)現(xiàn),需要重新定義隊(duì)頭 和隊(duì)尾,以及隊(duì)列的最大長(zhǎng)度,并且在屏幕上實(shí)現(xiàn)輸出顯示。2 .功能要求
6、(1)用菜單的形式實(shí)現(xiàn)操作界面,提供(14)個(gè)功能選項(xiàng),功能分別為創(chuàng) 建二叉樹、遍歷序列、節(jié)點(diǎn)的孩子信息、退出系統(tǒng)。(2)創(chuàng)建二叉樹。要求用文件讀取和鍵盤輸入兩種不同的方式實(shí)現(xiàn)二叉樹的 創(chuàng)建。二級(jí)菜單說(shuō)明,輸出創(chuàng)建二叉樹的深度及結(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)的提示返回菜單。二、概要設(shè)計(jì)1 .總體設(shè)計(jì)圖2 .數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)元素為字符,邏輯結(jié)構(gòu)為樹形結(jié)構(gòu),存儲(chǔ)結(jié)構(gòu)為二叉鏈?zhǔn)酱鎯?chǔ),系統(tǒng)操 作的數(shù)據(jù)元素主要是創(chuàng)建一個(gè)二叉樹,遍歷序列
7、。3 .算法設(shè)計(jì)本系統(tǒng)主要用到的算法有先序遍歷、中序遍歷、后序遍歷、層次遍歷、創(chuàng)建 二叉樹和查找節(jié)點(diǎn)。從子菜單界面只能返回到主菜單界面,而不是退出程序。4 .主要模塊及模塊之間的關(guān)系運(yùn)行程序后直接進(jìn)入“菜單主界面”模塊,菜單顯示分為4個(gè)模塊,(14)分別為創(chuàng)建二叉樹、遍歷序列、節(jié)點(diǎn)的孩子信息、退出系統(tǒng)。主界面中的各個(gè)模 塊都是獨(dú)立運(yùn)行,每完成一項(xiàng)操作后,返回主菜單模塊。通過(guò)相應(yīng)定義的函數(shù)(外 部接口)實(shí)現(xiàn),內(nèi)部數(shù)據(jù)的改變由模塊內(nèi)部完成。三、詳細(xì)設(shè)計(jì)1.結(jié)構(gòu)體(或類)設(shè)計(jì)typedef char TElemType;typedef struct BiTNodeTElemType date;str
8、uct BiTNode *lchild,*rchild;BiTNode,*BiTree;2.主要模塊實(shí)現(xiàn)的流程圖Case=1Case=2Case=4Case=33.算法設(shè)計(jì)先序遍歷:void PreOrderTraverse(BiTree T) if(T) cout<<T->date;PreOrderTraverse(T->lchild);PreOrderTraverse(T->rchild); 中序遍歷:void InOrderTraver(BiTree T) if(T) InOrderTraver(T->lchild); cout<<T-&g
9、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;BiTNode *qMaxSize;int qm,h;qm=h=-1;h+; qh=b;while(qm != h) qm=(qm+1)%MaxSize; p=qqm; printf("
10、%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; 四、測(cè)試運(yùn)行1 .登錄和主界面運(yùn)行效果圖2 .運(yùn)行說(shuō)明主程序運(yùn)行后,直接到菜單選擇界面。其中有 (14個(gè)選項(xiàng)可以選擇)1 .創(chuàng)建二叉樹2.遍歷序列 3.節(jié)點(diǎn)的孩子信息 4. 退出系統(tǒng)。 除退出以外,每個(gè)功能模塊運(yùn)行完后,返回到主菜單界面,每個(gè)界面相互獨(dú)-回I X3 .運(yùn)行效果圖,桂的基本操作程序棧1口疑11名桂的基本掾作.“片創(chuàng)建二叉布h請(qǐng)
11、選擇輸入二叉樹序列模式:(1:鍵盤輸入2 .文件輸入3 .返回主菜單)1物人按先序建立二叉樹結(jié)點(diǎn)序列:例如:由EDQ(?E(?QGFHQ0(?GIQJ(?(?!?輸入:ABD(?Eei?CFHei?!?G 1 je(?e二星樹創(chuàng)建成功I普髭皤懿缺點(diǎn)sC按期回主菜單界面)請(qǐng)輸入選項(xiàng).-由1桂的基本操作 程序*桂鈔etmg桂的基本操作創(chuàng)建二叉和;請(qǐng)選擇輸入二叉樹序列模式;(1;鍵盤輸入2.文件輸入"返回主菜單)二叉我創(chuàng)建成功!此二艮樹共有工日個(gè)結(jié)點(diǎn)且該二叉科的深度為:5(按3返回主菜單界面)請(qǐng)輸入選項(xiàng):.61 23 4 5 請(qǐng)殳樹歷歷歷歷菜廠叉遍遍遍遍主1二0:6回?fù)窠ㄏ戎泻髮臃颠x一二二
12、二二單5)一根叉叉叉叉信息,按三返回主菜單)"C:Docu>ents and SeittingM*d>in:iMtratDiA桌面、樓的基本掾作程序桂。£卜11落.選擇:1先序遍歷二叉樹的輸出順序:nBDECFHGIJ請(qǐng)按任意鍵繼續(xù).需三金曲e mm.C -C:Docu*ents心、按任意鍵返回子菜單)信,孩信的何點(diǎn)缶結(jié)回B C而R子子. "訂.,孩孩- 一在點(diǎn)左右一查的的續(xù) 一不的點(diǎn)盤 一點(diǎn)找.紀(jì)事鍵-5-一果要一如入一 <前意任按*Tk X。,C:D”瞰口桌面二桂的基本掾作程序桂前表學(xué)生情況統(tǒng)計(jì)表一 j 性 ,遼、t一姓名 口, 出生日期學(xué)號(hào)
13、專業(yè)聯(lián)系電話 備注另IJ1康政男1994.12144300202軟件工長(zhǎng)2肖琳桂男1996.08144300211軟件工程157175144943張小東男1994.07144300214軟件工程4張帆男1995.08144300208軟件工程五、結(jié)論與心得1 .總體評(píng)價(jià)在此次的課程設(shè)計(jì)中,由于不夠細(xì)心,在程序設(shè)計(jì)中犯了一些錯(cuò)誤,花了挺 多的時(shí)間。但是經(jīng)過(guò)一番思考并且在老師的幫助下,找到了導(dǎo)致程序錯(cuò)誤的原因, 經(jīng)過(guò)幾次修改和調(diào)試,程序能正常運(yùn)行,并且能夠完成課程設(shè)計(jì)任務(wù)中的大部分 功能。同時(shí)在此次的課程設(shè)計(jì)中讓我更深刻的了解了二叉樹的基本操作,增加了對(duì)專業(yè)只是學(xué)習(xí)的興趣
14、。我想在以后的學(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í)它。通過(guò)實(shí)踐我發(fā)現(xiàn)我的很多不足之處, 然感覺理論上已經(jīng)掌握,但在運(yùn) 用到實(shí)踐的過(guò)程中仍有意想不到的困惑, 因?yàn)樽约簩?duì)知識(shí)點(diǎn)的掌握不夠熟悉,但 通過(guò)學(xué)習(xí)有很大改進(jìn)。在這次課程設(shè)計(jì)中使我知道了二又
15、樹的先序、 中序、后序、層次遍歷。同時(shí), 還包括了求二叉樹深度和結(jié)點(diǎn)個(gè)數(shù), 結(jié)點(diǎn)的孩子信息,以及對(duì)文件的操作,用文 件讀取的方式實(shí)現(xiàn)對(duì)二叉樹的建立。充分掌握樹的基本操作,以及對(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è)計(jì)對(duì)找來(lái)說(shuō)受 益良多。在今后的日子里,我會(huì)認(rèn)真對(duì)待每一件事情,爭(zhēng)取做到最好,努力將知識(shí)與 實(shí)踐相結(jié)合,不斷鞏固,加深所學(xué)的知識(shí),做到學(xué)以致用。另外感謝老師的細(xì)心教導(dǎo),以及同學(xué)們的幫助??嫡壕帉?/p>
16、程序和課程設(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ò)自己的 思考和努力的鉆研才能寫出一套完整的代碼, 不可心急,越是急越不可能精細(xì)的 完成任務(wù)。撰寫報(bào)告的時(shí)候,很多地方因細(xì)節(jié)問(wèn)題處理不好導(dǎo)致出了大大小小很 多漏洞,不能很精細(xì)的完成指定的任務(wù)。從中我也明白了,做一件事,尤其是耗 時(shí)的編寫程序的問(wèn)題,不能心急也
17、不能馬虎,也許一點(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)可以做的更好。張小東:查找資料和打印。這次我在小組中做的事情是查詢資料和打印排版。雖然因 為我的專業(yè)底子差一點(diǎn),現(xiàn)在暫時(shí)只能在程序設(shè)計(jì)時(shí)查找一些需要用到的專業(yè)資 料,幫助組員完成設(shè)計(jì),但我相信下一次我不會(huì)僅此于此。 這次程序設(shè)計(jì)我的收
18、 獲還是很大了,讓我懂得了學(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)自身不足之處并努力改正他, 逐步提高自身的能力,不斷取得進(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)
19、實(shí)的基礎(chǔ)。張帆:查找資料和打印。這次我在小組中做的事情是查詢資料,打印排版。雖然這 些工作并不是主要任務(wù),但是我用心對(duì)待,認(rèn)真為做程序的同學(xué)查找資料,為他 們挑選所需要的代碼以及算法,及時(shí)反饋給他們信息。因?yàn)榛A(chǔ)不是很好,經(jīng)常 會(huì)剪裁到一些不是很合適的代碼, 我們通過(guò)共同分析,共同篩選,最終也獲得了 很多收獲。通過(guò)和他們一起分析代碼,我也漲了很多知識(shí)。懂的了二叉樹的算法, 數(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é)到了 很多。
20、認(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í)為自己充電。六、程序附錄(源代碼)#include<iostream>#include<fstream>#include<stdlib.h>using namespace std;typedef char TElemType;#define MaxSize 1000int i;typedef struct BiTNodeTElemTyp
21、e 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(BiTree &T);/文件void CreateBiTree(BiTree &T);int Count(BiTree T);int Deep(BiTree T);void PreOrderTraverse(BiTree T);/
22、 先序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;bool End=false;char sel;char x;int p=1;int q=1;doInterface。;fflush(stdin);char select=cin.get();system("cls"
23、);switch(select)case'1':cout<<"創(chuàng)建二叉樹:n"sjecs(T);break;case'2': cout<<"nt遍歷序列 n”;doblxljm();cout<<"n 選擇:"fflush(stdin);sel=cin.get();p=1;switch(sel) case'1':cout<<"n 先序遍歷二叉樹的輸出順序: n"PreOrderTraverse(T);cout<<&quo
24、t;n"system("pause");system("cls");brea k;case'2':cout<<"n中序遍歷二叉樹的輸出順序:n"InOrderTraver(T);cout<<"n"system("pause");system("cls");break;case'3':cout<<"n后序遍歷二叉樹的輸出順序:n"PostOrderTraver(T);cout<
25、;<"n"system("pause");system("cls");break ;case'4':cout<<"n 層次遍歷二叉樹的輸出順序:n"ccbl(T);cout<<"n"system("pause");system("cls");break;case'5': p=0;while(p);break;case'3': do system("cls");
26、q=1;cout<<"n 結(jié) 點(diǎn) 的孩子 信息 :n";cout<<"(如果節(jié)點(diǎn)不存在,不返回任何信息,按任意鍵返回子菜單)n”;cout<<"輸入要查找的節(jié)點(diǎn):"cin>>x;locate(T,x);system("pause");system("cls");cout<<"n菜單信息:n"cout<<"nt0.輸入返回主菜單n"cout<<"t1.繼續(xù)查找節(jié)點(diǎn)n"
27、;docout<<"t 請(qǐng)選擇:"cin>>q;if(q!=0&&q!=1) cout<<"輸入格式不對(duì)請(qǐng)重新輸入n"while(q!=0&&q!=1);while(q);break;case'4':End=true;system("pause");while(!End);void locate(BiTree T,char x) /在二叉樹T中查找值為x的節(jié)點(diǎn)BiTree p;P=T;if(T=NULL) return;else if(T->da
28、te=x)cout<<p->date;if(T->lchild)cout<<"t"<<”節(jié) 點(diǎn) 的 左 孩 子:"<<T->lchild->date<<"n" else cout<<"t"<<"節(jié)點(diǎn)沒有左孩子 n"if(T->rchild)cout<<"t節(jié) 點(diǎn) 的 右 孩 子:"<<T->rchild->date<<&quo
29、t;n"else cout<<"t"<<"節(jié)點(diǎn)沒有右孩子 n"else p=T->lchild;if(p) locate(T->lchild,x);locate(T->rchild,x);void Interface?!辈藛谓缑婧瘮?shù)system("cls");cout<<"nt 遍歷序列n”;cout<<"tt1.創(chuàng)建二叉樹 n"cout<<"tt2.遍歷序列 n”;cout<<"tt3
30、.結(jié)點(diǎn)的孩子信息n"cout<<"tt4.退出系統(tǒng) n"cout<<"tt 請(qǐng)選擇(14):"cout<<"ntn"void blxljm()/遍歷序列界面函數(shù)system("cls");cout<<"nt 二叉樹n"cout<<"t (如果沒創(chuàng)建二叉樹,不返回任何信息,按5返回主菜單)n"cout<<"tt1.先序遍歷二叉樹n"cout<<"tt2.中
31、序遍歷二叉樹n"cout<<"tt3.后序遍歷二叉樹n"cout<<"tt4.層次遍歷二叉樹n"cout<<"tt5.返回主菜單 n"cout<<"tt 請(qǐng)選擇(15):"cout<<"ntn"int Count(BiTree T)/ 計(jì)算節(jié)點(diǎn)數(shù)量if(T=NULL)return 0;return 1+Count(T->lchild)+Count(T->rchild);int Deep(BiTree T)計(jì)算二叉樹
32、的度if(T=NULL)return 0;int u=Deep(T->lchild);int v=Deep(T->rchild);if(u>v)return (u+1);return (v+1);void sjecs(BiTree &T)選擇輸入模式,新建二叉樹bool End=false;if(T)Destory(T);T=NULL;cout<<”請(qǐng)選擇輸入二叉樹序列模式:(1:鍵盤輸入2.文件輸入3.返回主 菜單)"<<endl;dochar Selection=cin.get();switch( Selection)case
33、39;1': jp(T);break;case'2':wj(T);break;case'3':End=true;while (!End);void jp(BiTree &T)/鍵盤輸入cout<<"輸入按先序建立二叉樹結(jié)點(diǎn)序列:t”;cout<<"例如:ABDECFHGIJn"cout<<"輸入:";cin>>input;int i=0;CreateBiTree(T);int num=Count(T);int deep=Deep(T);cout<
34、;<"二叉樹創(chuàng)建成功! n”;cout<<”此二叉樹共有"<<num<<,個(gè)結(jié)點(diǎn)n”;cout<<”且該二叉樹白深度為:"<< deepvv " n”;coutvv"請(qǐng)輸入選項(xiàng):"void wj(BiTree &T)/文件輸入ifstream fi("a.txt");if(!fi)cout<v"數(shù)據(jù)文件不存在! n"exit(0);fi>>input;int i=0;CreateBiTree(T);int num=Count(T);int deep=Deep(T);coutvv"二叉樹創(chuàng)建成功! n"coutvv"此二叉樹共有"vvnumv
溫馨提示
- 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 飼料銷售員財(cái)務(wù)制度
- 醫(yī)保慢病門診財(cái)務(wù)制度
- 破產(chǎn)期間財(cái)務(wù)制度
- 運(yùn)營(yíng)財(cái)務(wù)制度
- 單位辦公財(cái)務(wù)制度
- 關(guān)于商標(biāo)法第五次修訂中說(shuō)明商標(biāo)使用情況的制度
- 公司項(xiàng)目?jī)?nèi)審制度
- 地基施工方案實(shí)例(3篇)
- 助力大橋施工方案(3篇)
- 公司活動(dòng)策劃方案心得(3篇)
- 【診療方案】慢性阻塞性肺疾病診治指南(2025年修訂版)
- 初三上學(xué)期物理期末復(fù)習(xí)知識(shí)詳解(含答案)
- 2025年擔(dān)保公司考試題庫(kù)(含答案)
- 營(yíng)養(yǎng)員指導(dǎo)員培訓(xùn)
- 期末模擬測(cè)試(試卷)2025-2026學(xué)年六年級(jí)語(yǔ)文上冊(cè)(統(tǒng)編版)
- 2025-2026學(xué)年蘇教版小學(xué)數(shù)學(xué)三年級(jí)上冊(cè)期末綜合測(cè)試卷及答案(三套)
- 服裝廠生產(chǎn)流程標(biāo)準(zhǔn)操作程序
- 2025至2030伴侶動(dòng)物診斷行業(yè)發(fā)展趨勢(shì)分析與未來(lái)投資戰(zhàn)略咨詢研究報(bào)告
- 授信財(cái)務(wù)知識(shí)培訓(xùn)課件
- 師范類學(xué)生教學(xué)能力提升計(jì)劃
- 2025年中國(guó)燕麥數(shù)據(jù)監(jiān)測(cè)報(bào)告
評(píng)論
0/150
提交評(píng)論