二叉樹(shù)基本操作課程設(shè)計(jì)_第1頁(yè)
二叉樹(shù)基本操作課程設(shè)計(jì)_第2頁(yè)
二叉樹(shù)基本操作課程設(shè)計(jì)_第3頁(yè)
二叉樹(shù)基本操作課程設(shè)計(jì)_第4頁(yè)
二叉樹(shù)基本操作課程設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩17頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、學(xué)號(hào): 學(xué)年論文(設(shè)計(jì))(本科)學(xué) 院 專 業(yè) 年 級(jí) 姓 名 論文(設(shè)計(jì))題目 指導(dǎo)教師 職稱 成 績(jī) 2012 年 月 日摘要:數(shù)據(jù)結(jié)構(gòu)是一門研究非數(shù)值計(jì)算的程序設(shè)計(jì)問(wèn)題中計(jì)算機(jī)的操作對(duì)象以及它們之間的關(guān)系和操作的學(xué)科。作為研究對(duì)象的數(shù)據(jù)結(jié)構(gòu)是相互之間存在一種或多種特定關(guān)系的數(shù)據(jù)元素的集合。數(shù)據(jù)結(jié)構(gòu)在計(jì)算機(jī)中的表示(又稱映像),稱為數(shù)據(jù)的物理結(jié)構(gòu),又稱存儲(chǔ)結(jié)構(gòu)。相同的邏輯結(jié)構(gòu)可以具有不同的存儲(chǔ)結(jié)構(gòu),因而有不同的算法。本次課程設(shè)計(jì),程序中的數(shù)據(jù)采用“樹(shù)形結(jié)構(gòu)”作為其數(shù)據(jù)結(jié)構(gòu)。具體采用的是二叉樹(shù)。二叉樹(shù)是樹(shù)形結(jié)構(gòu)的一個(gè)重要的類型,二叉樹(shù)是n(n>0)個(gè)結(jié)點(diǎn)的有限集,它或者是空集(n>

2、;0),或者由一個(gè)根結(jié)點(diǎn)以及兩棵互不相交的,分別稱為左子樹(shù)和右子樹(shù)的二叉樹(shù)組成。二叉樹(shù)的順序存儲(chǔ)結(jié)構(gòu)是把二叉樹(shù)所有結(jié)點(diǎn),按照一定的次序排序,存儲(chǔ)到一片連續(xù)的存儲(chǔ)單元中。但二叉樹(shù)的順序存儲(chǔ)結(jié)構(gòu)浪費(fèi)空間并且插入、刪除不方便。二叉樹(shù)的鏈?zhǔn)酱鎯?chǔ)每個(gè)結(jié)點(diǎn)至少包含三個(gè)域:數(shù)據(jù)域、左指針域、右指針域,不浪費(fèi)空間。二叉樹(shù)的存儲(chǔ)結(jié)構(gòu)和算法比較簡(jiǎn)單,特別適合計(jì)算機(jī)處理,即使一般形式的樹(shù)也可簡(jiǎn)單的轉(zhuǎn)換為二叉樹(shù)?,F(xiàn)實(shí)中經(jīng)常用到二叉樹(shù),因此本課程設(shè)計(jì)主要實(shí)現(xiàn)了二叉樹(shù)的建立、三種遍歷,計(jì)算二叉數(shù)的樹(shù)深、統(tǒng)計(jì)葉子結(jié)點(diǎn)的個(gè)數(shù)等功能。關(guān)鍵詞:二叉樹(shù);遍歷;樹(shù)深;葉子結(jié)點(diǎn)學(xué)生簽名: 2012年 月 日目錄一、需求分析4二、概要設(shè)

3、計(jì)5三、詳細(xì)設(shè)計(jì)6四、調(diào)試分析及測(cè)試12五、課程設(shè)計(jì)總結(jié)20參考文獻(xiàn)21附錄21二叉樹(shù)基本操作一、 需求分析二叉樹(shù)形象地說(shuō)即樹(shù)中每個(gè)節(jié)點(diǎn)最多只有兩個(gè)分支,它是一種重要的數(shù)據(jù)類型??梢赃\(yùn)用于建立家譜,公司所有的員工的職位圖,以及各種事物的分類和各種機(jī)構(gòu)的職位圖表等。二叉樹(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)中必須包括:值域,左指針域,右指針域。演示程序以用戶與計(jì)算機(jī)對(duì)話的方式進(jìn)行,即在計(jì)算機(jī)終端上顯示提示信息后,由用戶在鍵盤上輸入相應(yīng)動(dòng)作的序號(hào)和相應(yīng)的輸入數(shù)據(jù)。1.1 選題理

4、由根據(jù)自己的知識(shí)功底和能力水平擇選了二叉樹(shù)問(wèn)題. 而且隨著計(jì)算機(jī)技術(shù)的飛速發(fā)展,越來(lái)越多的問(wèn)題正逐漸改用計(jì)算機(jī)解答,并且有些技術(shù)已經(jīng)非常成熟。運(yùn)用所學(xué)計(jì)算機(jī)知識(shí)來(lái)研究二叉樹(shù)的有關(guān)內(nèi)容可以鍛煉和提高我編程 和獨(dú)立解決問(wèn)題的能力,還可以使我增強(qiáng)信心,為我以后的編程開(kāi)個(gè)好頭,故我選擇了這個(gè)課題。1.2課程設(shè)計(jì)任務(wù)及要求(1)按先序次序輸入二叉樹(shù)中結(jié)點(diǎn)的值,構(gòu)造二叉鏈表表示的二叉樹(shù)t;(2)對(duì)二叉樹(shù)t作先序、中序、后序遍歷的遞歸算法,輸出結(jié)果;(3)計(jì)算二叉樹(shù)t的深度,輸出結(jié)果;(4)計(jì)算二叉樹(shù)t的葉子結(jié)點(diǎn)個(gè)數(shù)1.3課程設(shè)計(jì)思想本次課程設(shè)計(jì)中,用到的主要知識(shí)就是遞歸思想,著重體會(huì)遞歸的思想。建立二叉樹(shù)

5、采用先序次序插入的方式。對(duì)二叉樹(shù)進(jìn)行遍歷時(shí)采用遞歸函數(shù)的方式。求二叉樹(shù)的深度及葉子結(jié)點(diǎn)個(gè)數(shù)均采用遞歸方式。 1.4軟硬件運(yùn)行環(huán)境及開(kāi)發(fā)工具WindowsXP操作系統(tǒng)、Microsoft Visual C+ 6.0二、 概要設(shè)計(jì)2.1對(duì)程序中定義的核心數(shù)據(jù)結(jié)構(gòu)及對(duì)其說(shuō)明:typedef struct BiTNode char data; struct BiTNode *lchild,*rchild;BiTNode,*BiTree;在開(kāi)頭定義了二叉樹(shù)的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu),此處采用了每個(gè)結(jié)點(diǎn)中設(shè)置三個(gè)域, 即值域,左指針域和右指針域。2.2 程序模塊及其功能:本程序分為:7大模塊。二叉樹(shù)的建立鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)

6、、前序遍歷、中序遍歷、后序遍歷、求葉子結(jié)點(diǎn)的個(gè)數(shù)計(jì)算、中序遍歷、后序遍歷、深度、主函數(shù)。1、二叉樹(shù)的建立鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu);首先typedef struct BiTNode:定義二叉樹(shù)的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu),此處采用了每個(gè)結(jié)點(diǎn)中設(shè)置三個(gè)域,data:即值域,*lchild:左指針域和rchild:右指針域。2、二叉樹(shù)的前序遍歷;利用二叉鏈表作為存儲(chǔ)結(jié)構(gòu)的前序遍歷:先訪問(wèn)根結(jié)點(diǎn),再依次訪問(wèn)左右子樹(shù)。3、二叉樹(shù)的中序遍歷;利用二叉鏈表作為存儲(chǔ)結(jié)構(gòu)的中序遍歷:先訪問(wèn)左子數(shù),再訪問(wèn)根結(jié)點(diǎn),最后訪問(wèn)右子樹(shù)。4、二叉樹(shù)的后序遍歷;利用二叉鏈表作為存儲(chǔ)結(jié)構(gòu)的前序遍歷:先訪問(wèn)左右子樹(shù),再訪問(wèn)根結(jié)點(diǎn)。5、求二叉樹(shù)的深度:首先

7、判斷二叉樹(shù)是否為空,若為空則此二叉樹(shù)的深度為0。否則,就先別求出左右子樹(shù)的深度并進(jìn)行比較,取較大的+1就為二叉樹(shù)的深度。6、二叉樹(shù)的求葉子結(jié)點(diǎn)的個(gè)數(shù)計(jì)算;先分別求得左右子樹(shù)中各葉子結(jié)點(diǎn)個(gè)數(shù),再計(jì)算出兩者之和即為二叉樹(shù)的葉子結(jié)點(diǎn)數(shù)。7、主函數(shù)。主函數(shù)中分別調(diào)用各函數(shù)。三、 詳細(xì)設(shè)計(jì)1、存儲(chǔ)結(jié)構(gòu)的建立由遞歸函數(shù)實(shí)現(xiàn)具體函數(shù)為:typedef struct bitnode telemtype data; struct bitnode *lchild,*rchild;bitnode ,*bitree;bitree createbitree(bitree t)char ch;scanf("%c

8、",&ch);if(ch='#') t=NULL;elseif(!(t=(bitnode *)malloc(sizeof(bitnode) exit(overflow);t->data=ch;t->lchild=createbitree(t->lchild);t->rchild=createbitree(t->rchild);return t;在創(chuàng)建的二叉樹(shù)中,左右孩子都為字符型。char的作用是輸入n個(gè)任意的字符,而且在輸入n個(gè)字符后,必須輸入n+1個(gè)'#',才能得到本程序所有能夠?qū)崿F(xiàn)的功能。t=Null是將二叉

9、樹(shù)置空。if(!(t=(bitnode *)malloc(sizeof(bitnode),采用動(dòng)態(tài)申請(qǐng)新結(jié)點(diǎn)的方式,不僅實(shí)現(xiàn)起來(lái)方便,而且還節(jié)省大量的存儲(chǔ)空間。t->data=ch;值域t->lchild=createbitree(t->lchild);t->rchild=createbitree(t->rchild);將二叉樹(shù)中的每一個(gè)結(jié)點(diǎn)設(shè)置為:值域,左指針域,右指針。這一小段程序?qū)崿F(xiàn)了二叉樹(shù)的置空,二叉樹(shù)的建立,二叉樹(shù)的存儲(chǔ)。2、前序遍歷:先訪問(wèn)根結(jié)點(diǎn),再訪問(wèn)左子樹(shù),最后訪問(wèn)右子樹(shù)。具體函數(shù)為:void preordertraverse(bitree t)i

10、f(t)printf("%c",t->data);preordertraverse(t->lchild);preordertraverse(t->rchild);3、中序遍歷:先訪問(wèn)左子樹(shù),再訪問(wèn)根結(jié)點(diǎn),最后訪問(wèn)右子樹(shù)。具體函數(shù)為:void inordertraverse(bitree t) if (t) inordertraverse(t->lchild);printf("%c",t->data);inordertraverse(t->rchild); 4、后序遍歷:先訪問(wèn)左子樹(shù),再訪問(wèn)右子樹(shù),最后訪問(wèn)根結(jié)點(diǎn)。具體函

11、數(shù)為:void postordertraverse(bitree t) if(t)postordertraverse(t->lchild);postordertraverse(t->rchild);printf("%c",t->data); 5、求二叉樹(shù)的深度:先定義三個(gè)整形變量m,n.如果樹(shù)為空,則height=0;否則,先分別訪問(wèn)出左右子樹(shù)的深度,再進(jìn)行比較,將較大的+1的結(jié)果就是所求二叉樹(shù)的深度。具體函數(shù)為:int height(bitree t)int m,n;if(t=NULL) return 0;else m=height(t->lchi

12、ld);n=height(t->rchild);return (m>n)?m+1:n+1;6、求葉子結(jié)點(diǎn)的個(gè)數(shù):用leafcount變量表示葉子結(jié)點(diǎn)的總個(gè)數(shù),用leafcount(t->lchild)、leafcount(t->rchild)分別表示訪問(wèn)的左右子樹(shù)中葉子結(jié)點(diǎn)的個(gè)數(shù)。當(dāng)樹(shù)為空是此時(shí)討論葉子結(jié)點(diǎn)個(gè)數(shù)無(wú)意義;當(dāng)樹(shù)非空時(shí)分為:一、左右子數(shù)都不存在時(shí),即葉子結(jié)點(diǎn)的個(gè)數(shù)為1;二、左右子樹(shù)存在,就用分別訪問(wèn)出左右子樹(shù)中葉子結(jié)點(diǎn)的個(gè)數(shù),兩者相加就為二叉樹(shù)葉子結(jié)點(diǎn)的個(gè)數(shù)。具體函數(shù)為:int leafcount(bitree t) if(!t) return 0; /空數(shù)無(wú)

13、葉子 else if(!t->lchild&&!t->rchild) return 1; else return leafcount(t->lchild)+leafcount(t->rchild);7、主函數(shù):包括:二叉樹(shù)的數(shù)據(jù)結(jié)構(gòu)bitree t、函數(shù)createbitree、height、leafcount、前序遍歷preordertraverse、中序遍歷inordertraverse、后序遍歷postordertraverse。具體函數(shù)為:void main()bitree t;int w,v;printf("請(qǐng)輸入建樹(shù)字符序列:&qu

14、ot;);t=createbitree(t);printf("先續(xù)遍歷的結(jié)果是:");preordertraverse(t);printf("n");printf("中續(xù)遍歷的結(jié)果是:");inordertraverse(t);printf("n");printf("后續(xù)遍歷的結(jié)果是:");postordertraverse(t);printf("n");printf("二叉樹(shù)的深度是:");w=height(t);printf("%dn&quo

15、t;,w);printf("二叉樹(shù)的葉子結(jié)點(diǎn)的數(shù)目為:");v=leafcount(t);printf("%d",v);printf("n");8、完整代碼:#include <stdio.h>#include <malloc.h>#include <process.h>#define ok 1#define error 0#define overflow -1typedef char telemtype;typedef struct bitnode telemtype data; struct b

16、itnode *lchild,*rchild;bitnode ,*bitree;bitree createbitree(bitree t)char ch;scanf("%c",&ch);if(ch='#') t=NULL;elseif(!(t=(bitnode *)malloc(sizeof(bitnode) exit(overflow);t->data=ch;t->lchild=createbitree(t->lchild);t->rchild=createbitree(t->rchild);return t; voi

17、d preordertraverse(bitree t) if(t)printf("%c",t->data);preordertraverse(t->lchild);preordertraverse(t->rchild); void inordertraverse(bitree t)if (t) inordertraverse(t->lchild);printf("%c",t->data);inordertraverse(t->rchild); void postordertraverse(bitree t) if(t

18、)postordertraverse(t->lchild);postordertraverse(t->rchild);printf("%c",t->data); int height(bitree t)int m,n;if(t=NULL) return 0;else m=height(t->lchild);n=height(t->rchild);return (m>n)?m+1:n+1;int leafcount(bitree t)if(!t) return 0; /空數(shù)無(wú)葉子else if(!t->lchild&&

19、!t->rchild) return 1;else return leafcount(t->lchild)+leafcount(t->rchild); void main()bitree t;int w,v;printf("請(qǐng)輸入建樹(shù)字符序列:");t=createbitree(t);printf("先續(xù)遍歷的結(jié)果是:");preordertraverse(t);printf("n");printf("中續(xù)遍歷的結(jié)果是:");inordertraverse(t);printf("n&qu

20、ot;);printf("后續(xù)遍歷的結(jié)果是:");postordertraverse(t);printf("n");printf("二叉樹(shù)的深度是:");w=height(t);printf("%dn",w);printf("二叉樹(shù)的葉子結(jié)點(diǎn)的數(shù)目為:");v=leafcount(t);printf("%d",v);printf("n");四、 調(diào)試分析及測(cè)試4.1 遇到的問(wèn)題及解決方法(1) 二叉樹(shù)是另一種樹(shù)形結(jié)構(gòu),作為一種數(shù)據(jù)結(jié)構(gòu)其在計(jì)算機(jī)中的存儲(chǔ)結(jié)構(gòu)

21、有兩種:順序存儲(chǔ)結(jié)構(gòu)和鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。編寫(xiě)代碼之前首先要確定采用的存儲(chǔ)方式。經(jīng)分析及查找參考資料決定采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu),這種存儲(chǔ)結(jié)構(gòu)不浪費(fèi)空間并且插入、刪除方便。(2)本程序演示程序以用戶與計(jì)算機(jī)對(duì)話的方式進(jìn)行,即在計(jì)算機(jī)終端上顯示提示信息后,由用戶在鍵盤上輸入相應(yīng)動(dòng)作的序號(hào)和相應(yīng)的輸入數(shù)據(jù)。在運(yùn)行程序的過(guò)程中出現(xiàn)錯(cuò)誤,出現(xiàn)了以下界面:后經(jīng)仔細(xì)分析及查看代碼,發(fā)現(xiàn)scanf("%c",&ch)語(yǔ)句中少了一個(gè)&,經(jīng)改正后,再次運(yùn)行,得到結(jié)果。4.2 算法的時(shí)空分析遍歷二叉樹(shù)的基本操作是訪問(wèn)結(jié)點(diǎn),則不論按哪一種次序進(jìn)行遍歷,對(duì)含n個(gè)結(jié)點(diǎn)的二叉樹(shù),時(shí)間復(fù)雜度均為O(n

22、)。所需輔助空間為遍歷過(guò)程中棧的最大容量,即樹(shù)的深度,在最差情況下為n,則空間復(fù)雜度也為O(n)。4.3 程序模塊構(gòu)架本程序模塊劃分比較合理,易觀察且操作方便。整體可以分成七個(gè)模塊,分別為建立二叉樹(shù)、前序遍歷、中序遍歷、后序遍歷、求葉子結(jié)點(diǎn)的個(gè)數(shù)、求二叉樹(shù)的深度、主函數(shù)。4.4 算法的改進(jìn)這道題可以用非遞歸也可以用遞歸的方法來(lái)編寫(xiě)前序遍歷、中序遍歷、后序遍歷、求葉子結(jié)點(diǎn)的個(gè)數(shù)、求二叉樹(shù)深度的算法,這里我用了后者,遞歸算法簡(jiǎn)單方便。4.5 程序使用說(shuō)明(1) 本程序的運(yùn)行環(huán)境為WindowsXP操作系統(tǒng)(2) 用戶界面為Microsoft Visual C+ 6.0(3) 進(jìn)入界面后,首先進(jìn)行代

23、碼的輸入,然后通過(guò)編譯、組建、執(zhí)行,得到運(yùn)行結(jié)果,并進(jìn)行分析查看運(yùn)行結(jié)果是否正確,進(jìn)而確定是否要調(diào)試程序4.6 測(cè)試結(jié)果4.7 其他程序(1) 遍歷二叉樹(shù)的另一種遞歸算法(以先序遍歷為例)#include <stdio.h>#include <malloc.h>#include <process.h>#define ok 1#define error 0#define overflow -1typedef char status;typedef char TElemtype;typedef struct BiTNodeTElemtype data;struc

24、t BiTNode *lchild,*rchild;BiTNode,*BiTree;status CreateBiTree(BiTree &T) /按先序次序輸入二叉樹(shù)中結(jié)點(diǎn)的值(一個(gè)字符),'#'字符表示空樹(shù), /構(gòu)造二叉鏈表表示的二叉樹(shù)Tchar ch;scanf("%c",&ch);if (ch='#') T=NULL;else if(!(T=(BiTNode *)malloc(sizeof(BiTNode) exit (overflow);T->data=ch; /生成根結(jié)點(diǎn)CreateBiTree(T->

25、lchild); /構(gòu)造左子數(shù)CreateBiTree(T->rchild); /構(gòu)造右子數(shù)return ok;status PreorderTraverse(BiTree T,status(*visit)(TElemtype e) /采用二叉鏈表存儲(chǔ)結(jié)構(gòu),visit是對(duì)數(shù)據(jù)元素操作的應(yīng)用函數(shù), /先序遍歷二叉樹(shù)T的遞歸算法,對(duì)每個(gè)數(shù)據(jù)元素調(diào)用函數(shù)visitif (T)if(visit(T->data)if(PreorderTraverse(T->lchild,visit)if(PreorderTraverse(T->rchild,visit) return ok;re

26、turn error;else return ok;status printelement(TElemtype e)printf("%c",e);return ok;void main () BiTree T; CreateBiTree(T);PreorderTraverse(T,printelement);運(yùn)行結(jié)果為(2) 求二叉樹(shù)中以元素值為x的結(jié)點(diǎn)為根的子樹(shù)的深度#include <stdio.h>#include <malloc.h>#include <process.h>#define ok 1#define error 0#d

27、efine overflow -1typedef char status;typedef char telemtype;typedef struct bitnodetelemtype data;struct bitnode *lchild,*rchild;bitnode,*bitree;status createbitree(bitree &t)char ch;scanf("%c",&ch);if(ch='#') t=NULL;elseif(!(t=(bitnode *)malloc(sizeof(bitnode) exit(overflow

28、);t->data=ch;createbitree(t->lchild);createbitree(t->rchild);return ok;int getdepth(bitree t)int m,n;if(t)m=getdepth(t->lchild); n=getdepth(t->rchild);return m>=n?m+1:n+1;else return 0;int depthx(bitree t,char x)int m,n;if(t)if(t->data=x) return getdepth(t);elsem=depthx(t->lc

29、hild,x);n=depthx(t->rchild,x);return m>=n?m:n;else return 0;void main()bitree t;int w,v;char x;printf("請(qǐng)輸入以建立二叉樹(shù):");createbitree(t);printf("二叉樹(shù)的深度是:");w=getdepth(t);printf("%dn",w);scanf("%c",&x);printf("請(qǐng)輸入x:");scanf("%c",&x)

30、;v=depthx(t,x);printf("二叉樹(shù)中以元素值為x的結(jié)點(diǎn)為根的子樹(shù)的深度是:"); printf("%dn",v);運(yùn)行結(jié)果為(3) 求二叉樹(shù)的葉子節(jié)點(diǎn)個(gè)#include <stdio.h>#include <malloc.h>#include <process.h>#define ok 1#define error 0#define overflow -1typedef char status;typedef char telemtype;typedef struct bitnodetelemtype

31、 data;struct bitnode *lchild,*rchild;bitnode,*bitree;status createbitree(bitree &t)char ch;scanf("%c",&ch);if(ch='#') t=NULL;elseif(!(t=(bitnode *)malloc(sizeof(bitnode) exit(overflow);t->data=ch;createbitree(t->lchild);createbitree(t->rchild);return ok;status POLe

32、afNodeNum(int& i,bitree& t)if(t)if(!t->lchild && !t->rchild) i+;POLeafNodeNum(i,t->lchild);POLeafNodeNum(i,t->rchild);return i;void main()bitree t;int i=0,w;printf("請(qǐng)讀入字符建立二叉鏈表:n");createbitree(t); printf("二叉樹(shù)的葉子結(jié)點(diǎn)的數(shù)目為:");w=POLeafNodeNum(i,t);printf(&q

33、uot;%d",w);printf("n");運(yùn)行結(jié)果為五、課程設(shè)計(jì)總結(jié)本程序基本上實(shí)現(xiàn)了前序遍歷,中序遍歷,后序遍歷,葉子結(jié)點(diǎn)個(gè)數(shù)的求出,二叉樹(shù)深度的求出等基本操作。 在本次課程設(shè)計(jì)的學(xué)習(xí)過(guò)程中,我在其中的最大的收獲,就是得到了許多的經(jīng)驗(yàn)以及軟件設(shè)計(jì)的一些新的思路。 邁著時(shí)間的步伐,這次的課程設(shè)計(jì)也即將結(jié)束,但這個(gè)學(xué)期數(shù)據(jù)結(jié)構(gòu)的學(xué)習(xí)還是具有相當(dāng)大的意義,特別是這次的課程設(shè)計(jì),它從一個(gè)程度上改變了我的編程思想,如何將一個(gè)程序快速而又準(zhǔn)備的進(jìn)行編寫(xiě),進(jìn)行編譯,都成為了我思考的重點(diǎn)。同時(shí)通過(guò)這一個(gè)學(xué)期的學(xué)習(xí),我們將數(shù)據(jù)結(jié)構(gòu)的思想帶入到了我們以后的編程學(xué)習(xí)中去。在這個(gè)階段,我也明白了,好的思想,不能提留于字面上的認(rèn)知,還需要平時(shí)多練多寫(xiě)一些相關(guān)的程序,并且通過(guò)修改,加入新的算法去嘗試改變自己的一些編程思想。保持更新算法的速度,這才是關(guān)鍵。但在這次的課設(shè)中也遇了一些問(wèn)題。做二叉樹(shù)之前,必

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論