

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 課程設(shè)計(jì)(論文)任務(wù)書(shū)</p><p> 軟件 學(xué)院 軟件+道路與鐵道 專(zhuān)業(yè) 2 班 </p><p> 一、課程設(shè)計(jì)(論文)題目 二叉排序樹(shù)的實(shí)現(xiàn) </p><p> 二、課程設(shè)計(jì)(論文)工作自 2012
2、 年 12 月 17日起至2012年 12 月 23日止。</p><p> 三、課程設(shè)計(jì)(論文) 地點(diǎn): 15#520 </p><p> 四、課程設(shè)計(jì)(論文)內(nèi)容要求:</p><p> 1.本課程設(shè)計(jì)的目的</p><p> (1) (1)要求學(xué)生達(dá)到
3、熟練掌握C 語(yǔ)言的基本知識(shí)和技能;</p><p> (2) 基本掌握面向?qū)ο蟪绦蛟O(shè)計(jì)的基本思路和方法;</p><p> (3) 能夠利用所學(xué)的基本知識(shí)和技能,解決簡(jiǎn)單的程序設(shè)計(jì)問(wèn)題。 </p><p> 2.課程設(shè)計(jì)的任務(wù)及要求</p><p><b> 1)基本要求:</b></p><
4、p> ?。?)(1)要求利用TC 的編程思想來(lái)完成系統(tǒng)的設(shè)計(jì);</p><p> ?。?)要求在設(shè)計(jì)的過(guò)程中,建立清晰的結(jié)構(gòu)體層次;</p><p> (3)在系統(tǒng)的設(shè)計(jì)中,至少要做到基本管理要求。</p><p> (4)學(xué)生必須仔細(xì)閱讀《數(shù)據(jù)結(jié)構(gòu)》課程設(shè)計(jì)方案,認(rèn)真主動(dòng)完成課設(shè)的要求。有問(wèn)題及時(shí)主動(dòng)通過(guò)各種方式與教師聯(lián)系溝通。</p>&
5、lt;p><b> 2)創(chuàng)新要求: </b></p><p> 在基本要求達(dá)到后,可進(jìn)行創(chuàng)新設(shè)計(jì),如改善算法性能、友好的人機(jī)界面</p><p><b> 等。</b></p><p> 3)課程設(shè)計(jì)論文編寫(xiě)要求</p><p> (1)要按照書(shū)稿的規(guī)格打印與寫(xiě)課程設(shè)計(jì)論文</
6、p><p> ?。?)論文包括目錄、功能描述、設(shè)計(jì)思路、具體實(shí)現(xiàn)、運(yùn)行調(diào)試與分析討</p><p> 論、設(shè)計(jì)體會(huì)與小結(jié)、參考文獻(xiàn)、附錄(源代碼)等 </p><p> ?。?)課程設(shè)計(jì)論文裝訂按學(xué)校的統(tǒng)一要求完成</p><p> 4)答辯與評(píng)分標(biāo)準(zhǔn): </p><p> ?。?)考勤與學(xué)習(xí)態(tài)度:20分; </
7、p><p> ?。?)設(shè)計(jì)思路:20分;</p><p> (3)代碼實(shí)現(xiàn):20分;</p><p> ?。?)調(diào)試與分析:20分;</p><p> (5)回答問(wèn)題:10分;</p><p> (6)論文規(guī)范性:10分。</p><p><b> 5)參考文獻(xiàn)</b>
8、</p><p> [1]嚴(yán)蔚敏,吳偉民,《數(shù)據(jù)結(jié)構(gòu)》北京 清華大學(xué)出版社</p><p> [2]譚浩強(qiáng),《C++程序設(shè)計(jì)》 北京清華大學(xué)出版社</p><p> [3]譚鋒,章偉聰,《Visual c++程序設(shè)計(jì)實(shí)訓(xùn)教程》北京 科學(xué)出版社</p><p> 6)課程設(shè)計(jì)進(jìn)度安排</p><p> 1.準(zhǔn)備
9、階段(2學(xué)時(shí)):選擇設(shè)計(jì)題目、了解設(shè)計(jì)目的要求、查閱相關(guān)資料</p><p> 2.程序模塊設(shè)計(jì)分析階段(2學(xué)時(shí)):程序總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)</p><p> 3.代碼編寫(xiě)調(diào)試階段(6學(xué)時(shí)):程序模塊代碼編寫(xiě)、調(diào)試、測(cè)試</p><p> 4.撰寫(xiě)課程設(shè)計(jì)論文階段(2學(xué)時(shí)):總結(jié)課程設(shè)計(jì)任務(wù)和設(shè)計(jì)內(nèi)容,撰</p><p><b>
10、; 寫(xiě)課程設(shè)計(jì)論文</b></p><p> 課程設(shè)計(jì)(論文)評(píng)審意見(jiàn)</p><p> (1)考勤與態(tài)度 (20分):優(yōu)(?。?、良(?。?、中( )、一般(?。?、差( ); </p><p> ?。?)設(shè)計(jì)思路 ?。?0分):優(yōu)(?。?、良(?。?、中( )、一般(?。⒉睿ā。?; </p><p> ?。?)代碼實(shí)現(xiàn) ?。?
11、0分):優(yōu)(?。⒘迹ā。?、中(?。?、一般(?。?、差(?。?;</p><p> (4)調(diào)試與分析?。?0分):優(yōu)(?。⒘迹ā。⒅校ā。⒁话悖ā。?、差( );</p><p> ?。?)回答問(wèn)題 (10分):優(yōu)(?。⒘迹ā。?、中( )、一般( )、差(?。?;</p><p> ?。?)論文規(guī)范性 (10分):優(yōu)(?。?、良(?。⒅校ā。?、一般(?。?、差(
12、?。?lt;/p><p> 評(píng)閱人: 職稱(chēng): 講師 </p><p> 2012 年12月26日 </p><p><b> 目錄</b></p><p><b> 緒論- 1 -</b></p><p> 一、功能
13、描述- 2 -</p><p> 二、設(shè)計(jì)思路- 2 -</p><p> 三、具體實(shí)現(xiàn)- 6 -</p><p> 四、運(yùn)行調(diào)試及結(jié)果分析- 14 -</p><p> 五、設(shè)計(jì)體會(huì)與小結(jié)- 16 -</p><p> 六、參考文獻(xiàn)17</p><p> 七、
14、附錄(核心代碼)17</p><p><b> 緒論</b></p><p> 數(shù)據(jù)結(jié)構(gòu)是一門(mén)理論性強(qiáng)、思維抽象、難度較大的課程,是基礎(chǔ)課和專(zhuān)業(yè)課之間的橋梁。該課程的先行課程是計(jì)算機(jī)基礎(chǔ)、程序設(shè)計(jì)語(yǔ)言、離散數(shù)學(xué)等,后續(xù)課程有操作系統(tǒng)、編譯原理、數(shù)據(jù)庫(kù)原理、軟件工程等。 通過(guò)本門(mén)課程的學(xué)習(xí),我們應(yīng)該能透徹地理解各種數(shù)據(jù)對(duì)象的特點(diǎn),學(xué)會(huì)數(shù)據(jù)的組織方法和實(shí)現(xiàn)方法,并
15、進(jìn)一步培養(yǎng)良好的程序設(shè)計(jì)能力和解決實(shí)際問(wèn)題的能力。 </p><p> 數(shù)據(jù)結(jié)構(gòu)是計(jì)算機(jī)科學(xué)與技術(shù)專(zhuān)業(yè)的一門(mén)核心專(zhuān)業(yè)基礎(chǔ)課程,在該專(zhuān)業(yè)的課程體系中起著承上啟下的作用,學(xué)好數(shù)據(jù)結(jié)構(gòu)對(duì)于提高理論認(rèn)知水平和實(shí)踐能力有著極為重要的作用。學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)的最終目的是為了獲得求解問(wèn)題的能力。對(duì)于現(xiàn)實(shí)世界中的問(wèn)題,應(yīng)該能從中抽象出一個(gè)適當(dāng)?shù)臄?shù)學(xué)模型,該數(shù)學(xué)模型在計(jì)算機(jī)內(nèi)部用相應(yīng)的數(shù)據(jù)結(jié)構(gòu)來(lái)表示,然后設(shè)計(jì)一個(gè)解此數(shù)學(xué)模型的算法,再
16、進(jìn)行編程調(diào)試,最后獲得問(wèn)題的解答。</p><p> 實(shí)習(xí)課程是為了加強(qiáng)編程能力的培養(yǎng),鼓勵(lì)學(xué)生使用新興的編程語(yǔ)言。相信通過(guò)數(shù)據(jù)結(jié)構(gòu)課程實(shí)踐,無(wú)論是理論知識(shí),還是實(shí)踐動(dòng)手能力,我們都會(huì)有不同程度上的提高。</p><p><b> 功能描述</b></p><p> 1) 以回車(chē)('\n')為輸入結(jié)束標(biāo)志,輸入數(shù)
17、列L,生成一棵二叉排 序樹(shù)T; 2) 對(duì)二叉排序樹(shù)T作中序遍歷,輸出結(jié)果; 3) 輸入元素x,查找二叉排序樹(shù)T,若存在含x的結(jié)點(diǎn),則刪除該結(jié)點(diǎn),并作中序遍歷(執(zhí)行操 作2);否則輸出信息“無(wú)x”;</p><p><b> 設(shè)計(jì)思路</b></p><p><b&g
18、t; 算法設(shè)計(jì)思想</b></p><p> 二插鏈表作存儲(chǔ)結(jié)構(gòu): 建立二插排序樹(shù)采用邊查找邊插入的方式。查找函數(shù)采用遞歸的方式進(jìn)行查找。如果查找成功則不應(yīng)再插入原樹(shù),否則返回當(dāng)前結(jié)點(diǎn)的上一個(gè)結(jié)點(diǎn)。然后利用插入函數(shù)將該元素插入原樹(shù)。</p><p> 對(duì)二叉樹(shù)進(jìn)行中序遍歷采用遞歸函數(shù)的方式。在根結(jié)點(diǎn)不為空的情況下,先訪(fǎng)問(wèn)左子樹(shù),再訪(fǎng)問(wèn)根結(jié)點(diǎn),最后訪(fǎng)問(wèn)右子樹(shù)。</p
19、><p> 刪除結(jié)點(diǎn)函數(shù),采用邊查找邊刪除的方式。如果沒(méi)有查找到,則不對(duì)樹(shù)做任何的修改;如果查找到結(jié)點(diǎn),則分四種情況分別進(jìn)行討論:1、該結(jié)點(diǎn)左右子樹(shù)均為空;2、該結(jié)點(diǎn)僅左子樹(shù)為空;3、該結(jié)點(diǎn)僅右子樹(shù)為空;4、該結(jié)點(diǎn)左右子樹(shù)均不為空。</p><p> 在進(jìn)行算法設(shè)計(jì)時(shí),應(yīng)將題目分為五個(gè)函數(shù)模塊:</p><p> 1、中序遍歷,符合升序輸出</p>
20、<p> void inorder(node *&root) </p><p><b> {</b></p><p> if(root!=NULL)</p><p><b> {</b></p><p> inorder(root->left);</
21、p><p> cout<<root->data<<' ';</p><p> inorder(root->right);</p><p><b> }</b></p><p><b> }</b></p><p> 2
22、、在查找樹(shù)中插入元素</p><p> void insert(node *&ptr,int item) </p><p><b> {</b></p><p> if(ptr==NULL)</p><p> ptr=new node(item);</p><p> else
23、 if(item<ptr->data)</p><p> insert(ptr->left,item);</p><p> else insert(ptr->right,item);</p><p><b> }</b></p><p> 3、在查找樹(shù)中查找元素 </p>&
24、lt;p> node *find(node *&ptr,int item) </p><p><b> {</b></p><p> if(ptr==NULL)</p><p> return NULL;</p><p> if(ptr->data==item)</p>&
25、lt;p> return ptr;</p><p> else if(item<ptr->data)</p><p> find(ptr->left,item);</p><p> else find(ptr->right,item);</p><p><b> }</b><
26、/p><p> 4、在查找樹(shù)中查找肯定存在的元素,并返回其引用</p><p> node *&findy(node *&ptr,int item) </p><p><b> {</b></p><p> if(ptr->data==item)</p><p> r
27、eturn ptr;</p><p> else if(item<ptr->data)</p><p> findy(ptr->left,item);</p><p> else findy(ptr->right,item);</p><p><b> }</b></p>&
28、lt;p> node* rl()</p><p><b> {</b></p><p> return left;</p><p><b> }</b></p><p> node* rr()</p><p><b> {</b><
29、;/p><p> return right;</p><p><b> }</b></p><p> 5、刪除指定值為所在結(jié)點(diǎn)</p><p> void dele(node *&ptr) </p><p><b> {</b></p>
30、<p> if(ptr->rl()==NULL&&ptr->rr()==NULL)</p><p><b> ptr=NULL;</b></p><p> else if(ptr->rr()==NULL)</p><p> ptr=ptr->rl();</p><p
31、><b> else</b></p><p> ptr=ptr->rr();</p><p><b> }</b></p><p><b> private:</b></p><p><b> int data;</b></p&
32、gt;<p> node *left; </p><p> node *right; </p><p><b> };</b></p><p><b> 具體實(shí)現(xiàn)</b></p><p><b> 1.調(diào)入文件&
33、lt;/b></p><p> #include <iostream></p><p><b> 2.主函數(shù)</b></p><p> int main()</p><p><b> {</b></p><p> int t,i=0,j;</
34、p><p> cout<<" 謝岳松-218-二叉排序樹(shù)的實(shí)現(xiàn) "<<endl;</p><p> cout<<"1.二叉排序樹(shù)T的輸入:"<<endl;</p><p> cout<<"輸入數(shù)字個(gè)數(shù)(結(jié)點(diǎn)個(gè)數(shù)):";</p>
35、<p><b> cin>>t;</b></p><p> cout<<"輸入"<<t<<"個(gè)數(shù)字,數(shù)字之間用空格隔開(kāi):";</p><p><b> cin>>j;</b></p><p> node
36、*x=new node(j);</p><p> for(;i<t-1;i++)</p><p><b> {</b></p><p><b> cin>>j;</b></p><p> x->insert(x,j);</p><p><
37、b> }</b></p><p> cout<<"中序遍歷為:";</p><p> x->inorder(x); //作中序遍歷</p><p> cout<<"\n";</p><p> cout<<&
38、quot;2.二叉排序樹(shù)T的元素查找和刪除:"<<endl;</p><p> cout<<"\n輸入操作(當(dāng)輸入-1時(shí)程序結(jié)束):"<<endl;</p><p><b> cin>>j;</b></p><p> while(j!=-1)</p>
39、<p><b> {</b></p><p> node *t=x->find(x,j); //定位結(jié)點(diǎn)</p><p> if(t!=NULL)</p><p><b> {</b></p><p> node *&y=x->findy
40、(x,j);</p><p> x->dele(y);</p><p> cout<<"中序遍歷為:";</p><p> x->inorder(x);</p><p><b> }</b></p><p> else cout<<
41、"無(wú)"<<j;</p><p> cout<<"\n輸入操作(當(dāng)輸入-1時(shí)程序結(jié)束):"<<endl;</p><p><b> cin>>j;</b></p><p><b> }</b></p><p>
42、;<b> return 0;</b></p><p><b> }</b></p><p><b> 3.程序編碼</b></p><p> #include <iostream></p><p> using namespace std;</p&
43、gt;<p> class node</p><p><b> {</b></p><p><b> public:</b></p><p> node(int i):data(i), lchild (NULL), rchild (NULL){}</p><p> void
44、inorder(node *&root) //中序遍歷,符合升序輸出</p><p><b> {</b></p><p> if(root!=NULL)</p><p><b> {</b></p><p> inorder(root-> lchild);</
45、p><p> cout<<root->data<<' ';</p><p> inorder(root-> rchild);</p><p><b> }</b></p><p><b> }</b></p><p>
46、 void insert(node *&ptr,int item) //在查找樹(shù)中插入元素</p><p><b> {</b></p><p> if(ptr==NULL)</p><p> ptr=new node(item);</p><p> else if(item<ptr->da
47、ta)</p><p> insert(ptr-> lchild,item);</p><p> else insert(ptr-> rchild,item);</p><p><b> }</b></p><p> node *find(node *&ptr,int item) //在查找
48、樹(shù)中查找元素,找到返回所在結(jié)點(diǎn)指針,找不到返回空指針。</p><p><b> {</b></p><p> if(ptr==NULL)</p><p> return NULL;</p><p> if(ptr->data==item)</p><p> return ptr;
49、</p><p> else if(item<ptr->data)</p><p> find(ptr-> lchild,item);</p><p> else find(ptr-> rchild,item);</p><p><b> }</b></p><p>
50、; node *&findy(node *&ptr,int item) //在查找樹(shù)中查找肯定存在的元素,并返回其引用</p><p><b> {</b></p><p> if(ptr->data==item)</p><p> return ptr;</p><p> else i
51、f(item<ptr->data)</p><p> findy(ptr-> lchild,item);</p><p> else findy(ptr-> rchild,item);</p><p><b> }</b></p><p> node* rl(){return lchild
52、;}</p><p> node* rr(){return rchild;}</p><p> void dele(node *&ptr) //刪除值為item所在結(jié)點(diǎn)</p><p><b> {</b></p><p> if(ptr->rl()==NULL&&ptr
53、->rr()==NULL)</p><p><b> ptr=NULL;</b></p><p> else if(ptr->rr()==NULL)</p><p> ptr=ptr->rl();</p><p><b> else</b></p><p
54、> ptr=ptr->rr();</p><p><b> }</b></p><p><b> private:</b></p><p><b> int data;</b></p><p> node * lchild; /
55、/左孩子結(jié)點(diǎn)</p><p> node * rchild; //右孩子結(jié)點(diǎn)</p><p><b> };</b></p><p> int main()</p><p><b> {</b></p><p> int t,i=0,j;&
56、lt;/p><p> cout<<" 謝岳松-218-二叉排序樹(shù)的實(shí)現(xiàn) "<<endl;</p><p> cout<<"1.二叉排序樹(shù)T的輸入:"<<endl;</p><p> cout<<"輸入數(shù)字個(gè)數(shù)(結(jié)點(diǎn)個(gè)數(shù)):";<
57、;/p><p><b> cin>>t;</b></p><p> cout<<"輸入"<<t<<"個(gè)數(shù)字,數(shù)字之間用空格隔開(kāi):";</p><p><b> cin>>j;</b></p><p>
58、; node *x=new node(j);</p><p> for(;i<t-1;i++)</p><p><b> {</b></p><p><b> cin>>j;</b></p><p> x->insert(x,j);</p><p
59、><b> }</b></p><p> cout<<"中序遍歷為:";</p><p> x->inorder(x); //作中序遍歷</p><p> cout<<"\n";</p><p> cout&
60、lt;<"2.二叉排序樹(shù)T的元素查找和刪除:"<<endl;</p><p> cout<<"\n輸入操作(當(dāng)輸入-1時(shí)程序結(jié)束):"<<endl;</p><p><b> cin>>j;</b></p><p> while(j!=-1)&l
61、t;/p><p><b> {</b></p><p> node *t=x->find(x,j); //定位結(jié)點(diǎn)</p><p> if(t!=NULL)</p><p><b> {</b></p><p> node *&y=x-&
62、gt;findy(x,j);</p><p> x->dele(y);</p><p> cout<<"中序遍歷為:";</p><p> x->inorder(x);</p><p><b> }</b></p><p> else cout
63、<<"無(wú)"<<j;</p><p> cout<<"\n輸入操作(當(dāng)輸入-1時(shí)程序結(jié)束):"<<endl;</p><p><b> cin>>j;</b></p><p><b> }</b></p>
64、<p><b> return 0;</b></p><p><b> }</b></p><p><b> 運(yùn)行調(diào)試及結(jié)果分析</b></p><p><b> 輸入節(jié)點(diǎn)數(shù)</b></p><p> 輸入二叉樹(shù)數(shù),并輸出中序遍歷<
65、;/p><p> 當(dāng)輸入25時(shí),二叉樹(shù)中無(wú)該數(shù)據(jù),輸出無(wú)25</p><p><b> 輸入-1表示退出</b></p><p><b> 設(shè)計(jì)體會(huì)與小結(jié)</b></p><p> 基于我對(duì)編程的極大興趣,我對(duì)這次的課程設(shè)計(jì)非常重視。通過(guò)這次實(shí)驗(yàn)我也著實(shí)又感受了一次編程的樂(lè)趣,從中也學(xué)到了不少知
66、識(shí)。在這段時(shí)間里,我遇到過(guò)的問(wèn)題主要就是C語(yǔ)言和C++語(yǔ)言有些混淆,一些用法記不太清楚。在石紅芹老師的指導(dǎo)幫助下,同學(xué)們課余時(shí)間的討論中,這些問(wèn)題都一一得到了解決。在程序的調(diào)試能力上,無(wú)形中得到了許多的提高。這樣無(wú)形中就提高了自己編寫(xiě)的程序的質(zhì)量。在實(shí)際的上機(jī)操作過(guò)程中,不僅是讓我們了解數(shù)據(jù)結(jié)構(gòu)的理論知識(shí),更重要的是培養(yǎng)解決實(shí)際問(wèn)題的能力,所以相信通過(guò)此次實(shí)習(xí)可以提高我們分析設(shè)計(jì)能力和編程能力,為后續(xù)課程的學(xué)習(xí)及實(shí)踐打下良好的基礎(chǔ)<
67、;/p><p><b> 參考文獻(xiàn)</b></p><p> [1]嚴(yán)蔚敏,吳偉民,《數(shù)據(jù)結(jié)構(gòu)》北京 清華大學(xué)出版社</p><p> [2]譚浩強(qiáng),《C++程序設(shè)計(jì)》 北京清華大學(xué)出版社</p><p> [3]譚鋒,章偉聰,《Visual c++程序設(shè)計(jì)實(shí)訓(xùn)教程》北京 科學(xué)出版社</p><p
68、><b> 附錄(核心代碼)</b></p><p> #include <iostream></p><p> using namespace std;</p><p> class node</p><p><b> {</b></p><p>
69、;<b> public:</b></p><p> node(int i):data(i), lchild (NULL), rchild (NULL){}</p><p> void inorder(node *&root) //中序遍歷,符合升序輸出</p><p><b> {</b><
70、;/p><p> if(root!=NULL)</p><p><b> {</b></p><p> inorder(root-> lchild);</p><p> cout<<root->data<<' ';</p><p> ino
71、rder(root-> rchild);</p><p><b> }</b></p><p><b> }</b></p><p> void insert(node *&ptr,int item) //在查找樹(shù)中插入元素</p><p><b> {</b
72、></p><p> if(ptr==NULL)</p><p> ptr=new node(item);</p><p> else if(item<ptr->data)</p><p> insert(ptr-> lchild,item);</p><p> else insert
73、(ptr-> rchild,item);</p><p><b> }</b></p><p> node *find(node *&ptr,int item) //在查找樹(shù)中查找元素,找到返回所在結(jié)點(diǎn)指針,找不到返回空指針。</p><p><b> {</b></p><p&g
74、t; if(ptr==NULL)</p><p> return NULL;</p><p> if(ptr->data==item)</p><p> return ptr;</p><p> else if(item<ptr->data)</p><p> find(ptr->
75、lchild,item);</p><p> else find(ptr-> rchild,item);</p><p><b> }</b></p><p> node *&findy(node *&ptr,int item) //在查找樹(shù)中查找肯定存在的元素,并返回其引用</p><p>
76、;<b> {</b></p><p> if(ptr->data==item)</p><p> return ptr;</p><p> else if(item<ptr->data)</p><p> findy(ptr-> lchild,item);</p><
77、;p> else findy(ptr-> rchild,item);</p><p><b> }</b></p><p> node* rl(){return lchild;}</p><p> node* rr(){return rchild;}</p><p> void dele(node
78、*&ptr) //刪除值為item所在結(jié)點(diǎn)</p><p><b> {</b></p><p> if(ptr->rl()==NULL&&ptr->rr()==NULL)</p><p><b> ptr=NULL;</b></p><p>
79、 else if(ptr->rr()==NULL)</p><p> ptr=ptr->rl();</p><p><b> else</b></p><p> ptr=ptr->rr();</p><p><b> }</b></p><p>&l
80、t;b> private:</b></p><p><b> int data;</b></p><p> node * lchild; //左孩子結(jié)點(diǎn)</p><p> node * rchild; //右孩子結(jié)點(diǎn)</p><p><
81、b> };</b></p><p> int main()</p><p><b> {</b></p><p> int t,i=0,j;</p><p> cout<<" 謝岳松-218-二叉排序樹(shù)的實(shí)現(xiàn) "<<endl;</
82、p><p> cout<<"1.二叉排序樹(shù)T的輸入:"<<endl;</p><p> cout<<"輸入數(shù)字個(gè)數(shù)(結(jié)點(diǎn)個(gè)數(shù)):";</p><p><b> cin>>t;</b></p><p> cout<<&q
83、uot;輸入"<<t<<"個(gè)數(shù)字,數(shù)字之間用空格隔開(kāi):";</p><p><b> cin>>j;</b></p><p> node *x=new node(j);</p><p> for(;i<t-1;i++)</p><p><
84、b> {</b></p><p><b> cin>>j;</b></p><p> x->insert(x,j);</p><p><b> }</b></p><p> cout<<"中序遍歷為:";</p>
85、;<p> x->inorder(x); //作中序遍歷</p><p> cout<<"\n";</p><p> cout<<"2.二叉排序樹(shù)T的元素查找和刪除:"<<endl;</p><p> cout<<"
86、;\n輸入操作(當(dāng)輸入-1時(shí)程序結(jié)束):"<<endl;</p><p><b> cin>>j;</b></p><p> while(j!=-1)</p><p><b> {</b></p><p> node *t=x->find(x,j);
87、 //定位結(jié)點(diǎn)</p><p> if(t!=NULL)</p><p><b> {</b></p><p> node *&y=x->findy(x,j);</p><p> x->dele(y);</p><p> cout<<&qu
88、ot;中序遍歷為:";</p><p> x->inorder(x);</p><p><b> }</b></p><p> else cout<<"無(wú)"<<j;</p><p> cout<<"\n輸入操作(當(dāng)輸入-1時(shí)程序結(jié)束
89、):"<<endl;</p><p><b> cin>>j;</b></p><p><b> }</b></p><p><b> return 0;</b></p><p><b> }</b></p&
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--二叉排序樹(shù)的實(shí)現(xiàn)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)-二叉排序樹(shù)的實(shí)現(xiàn)
- 《二叉排序樹(shù)的操作》課程設(shè)計(jì)報(bào)告
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--二叉排序樹(shù)
- 數(shù)據(jù)結(jié)構(gòu)二叉排序樹(shù)課程設(shè)計(jì)報(bào)告
- 二叉排序樹(shù)實(shí)驗(yàn)
- 二叉排序樹(shù)實(shí)驗(yàn)
- 《數(shù)據(jù)結(jié)構(gòu)》課程設(shè)計(jì)--二叉排序樹(shù)調(diào)整為平衡二叉樹(shù)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---二叉排序樹(shù)和平衡二叉樹(shù)的判別
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告---二叉排序樹(shù)實(shí)現(xiàn)集合的運(yùn)算
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)(二叉排序樹(shù)的相關(guān)操作)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---判別給定的二叉樹(shù)是否為二叉排序樹(shù)
- 二叉排序樹(shù)的實(shí)現(xiàn)(最終版)
- 平衡二叉排序樹(shù)的構(gòu)建
- 數(shù)據(jù)結(jié)構(gòu)二叉排序樹(shù)的實(shí)現(xiàn)__(用順序和二叉鏈表作存儲(chǔ)結(jié)構(gòu)_)課程設(shè)計(jì)
- 課程設(shè)計(jì) 排序二叉樹(shù)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)-二叉排序樹(shù)的簡(jiǎn)單應(yīng)用報(bào)告
- 利用二叉排序樹(shù)對(duì)順序表進(jìn)行排序課程設(shè)計(jì)說(shuō)明書(shū)
- 嚴(yán)格平衡二叉排序樹(shù)類(lèi)屬類(lèi)_平均查找長(zhǎng)度
- 二叉樹(shù)課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論