2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩19頁(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、<p><b>  目 錄</b></p><p><b>  1 前言1</b></p><p><b>  2 需求分析1</b></p><p>  2.1課程設(shè)計(jì)目的1</p><p>  2.2課程設(shè)計(jì)任務(wù)1</p><p>

2、;<b>  2.3設(shè)計(jì)環(huán)境1</b></p><p><b>  3 概要設(shè)計(jì)1</b></p><p>  3.1數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)1</p><p><b>  3.2模塊設(shè)計(jì)6</b></p><p><b>  4 詳細(xì)設(shè)計(jì)6</b><

3、/p><p><b>  5 測(cè)試分析14</b></p><p>  6 課程設(shè)計(jì)總結(jié)16</p><p><b>  參考文獻(xiàn)17</b></p><p><b>  致謝17</b></p><p><b>  1 前言</b&

4、gt;</p><p>  二叉樹是一種數(shù)據(jù)結(jié)構(gòu),用于保存和處理樹狀的數(shù)據(jù),比如家譜。他的應(yīng)用極為廣泛,因?yàn)楦鶕?jù)數(shù)據(jù)結(jié)構(gòu)的理論,任何復(fù)雜的樹夠可以轉(zhuǎn)換為二叉中并進(jìn)行處理,二叉樹在排序、查找、大規(guī)模數(shù)據(jù)索引方面有很多很多應(yīng)用,而且二叉樹排序是簡(jiǎn)單算法排序中速度最快的。</p><p>  在二叉樹的一些應(yīng)用中,常常要求在樹中查找具有某種特征的節(jié)點(diǎn),或者對(duì)樹中全部節(jié)點(diǎn)逐一進(jìn)行某種處理。這就提出

5、了遍歷二叉樹。根據(jù)遍歷的方向的選擇,就有了前序遍歷,中序遍歷和后序遍歷以及層次遍歷二叉樹。因此掌握二叉樹的各種遍歷二叉樹算法非常重要,而且高效的遍歷算法能夠節(jié)省很多成本。</p><p><b>  2 需求分析</b></p><p><b>  2.1課程設(shè)計(jì)目的</b></p><p>  學(xué)生在教師指導(dǎo)下運(yùn)用所學(xué)課

6、程的知識(shí)來(lái)研究、解決一些具有一定綜合性問(wèn)題的專業(yè)課題。通過(guò)課程設(shè)計(jì)(論文),提高學(xué)生綜合運(yùn)用所學(xué)知識(shí)來(lái)解決實(shí)際問(wèn)題、使用文獻(xiàn)資料、及進(jìn)行科學(xué)實(shí)驗(yàn)或技術(shù)設(shè)計(jì)的初步能力,為畢業(yè)設(shè)計(jì)(論文)打基礎(chǔ)。</p><p><b>  2.2課程設(shè)計(jì)任務(wù)</b></p><p><b> ?。ㄒ唬┤蝿?wù)</b></p><p>  二叉樹

7、的中序、前序、后序的遞歸、非遞歸遍歷算法,層次序的非遞歸遍歷算法的實(shí)現(xiàn),應(yīng)包含建樹的實(shí)現(xiàn)。 要求:多個(gè)測(cè)試用例,且畫出其二叉樹。</p><p><b>  2.3設(shè)計(jì)環(huán)境</b></p><p> ?。?)WINDOWS 2000/2003/XP/7/Vista系統(tǒng)</p><p> ?。?)Visual C++或TC集成開(kāi)發(fā)環(huán)境&l

8、t;/p><p><b>  3 概要設(shè)計(jì)</b></p><p><b>  3.1數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)</b></p><p>  1、二叉樹的抽象數(shù)據(jù)類型定義</p><p>  ADT BinaryTree{</p><p>  數(shù)據(jù)對(duì)象D:D是具有相同特性的數(shù)據(jù)元素的集合。&l

9、t;/p><p><b>  數(shù)據(jù)關(guān)系R:</b></p><p>  若D=Φ,則R=Φ,稱BinaryTree為空二叉樹;</p><p>  若D≠Φ,則R={H},H是如下二元關(guān)系;</p><p> ?。?)在D中存在惟一的稱為根的數(shù)據(jù)元素root,它在關(guān)系H下無(wú)前驅(qū);</p><p>  

10、(2)若D-{root}≠Φ,則存在D-{root}={D1,Dr},且D1∩Dr =Φ;</p><p> ?。?)若D1≠Φ,則D1中存在惟一的元素x1,<root,x1>∈H,且存在D1上的關(guān)系H1 ?H;若Dr≠Φ,則Dr中存在惟一的元素xr,<root,xr>∈H,且存在Dr上的關(guān)系Hr ?H;H={<root,x1>,<root,xr>,H1,Hr};&

11、lt;/p><p>  (5)(D1,{H1})是一棵符合本定義的二叉樹,稱為根的左子樹;(Dr,{Hr})是一棵符合本定義的二叉樹,稱為根的右子樹。</p><p><b>  基本操作:</b></p><p>  InitBiTree( &T )</p><p>  操作結(jié)果:構(gòu)造空二叉樹T。</p>

12、;<p>  Destroy BiTree( &T )</p><p>  初始條件:二叉樹T已存在。</p><p>  操作結(jié)果:銷毀二叉樹T。</p><p>  CreateBiTree( &T, definition )</p><p>  初始條件:definition給出二叉樹T的定義。</p

13、><p>  操作結(jié)果:按definiton構(gòu)造二叉樹T。</p><p>  ClearBiTree( &T )</p><p>  初始條件:二叉樹T存在。</p><p>  操作結(jié)果:將二叉樹T清為空樹。</p><p>  BiTreeEmpty( T )</p><p>  初始

14、條件:二叉樹T存在。</p><p>  操作結(jié)果:若T為空二叉樹,則返回TRUE,否則返回FALSE。</p><p>  BiTreeDepth( T )</p><p>  初始條件:二叉樹T存在。</p><p>  操作結(jié)果:返回T的深度。</p><p><b>  Root( T )</b

15、></p><p>  初始條件:二叉樹T存在。 </p><p>  操作結(jié)果:返回T的根。</p><p>  Value( T, e )</p><p>  初始條件:二叉樹T存在,e是T中某個(gè)結(jié)點(diǎn)。</p><p>  操作結(jié)果:返回e的值。</p><p>  Assign(

16、T, &e, value )</p><p>  初始條件:二叉樹T存在,e是T中某個(gè)結(jié)點(diǎn)。</p><p>  操作結(jié)果:結(jié)點(diǎn)e賦值為value。</p><p>  Parent( T, e )</p><p>  初始條件:二叉樹T存在,e是T中某個(gè)結(jié)點(diǎn)。</p><p>  操作結(jié)果:若e是T的非根結(jié)點(diǎn)

17、,則返回它的雙親,否則返回“空”。</p><p>  LeftChild( T, e )</p><p>  初始條件:二叉樹T存在,e是T中某個(gè)結(jié)點(diǎn)。</p><p>  操作結(jié)果:返回e的左孩子。若e無(wú)左孩子,則返回“空”。</p><p>  RightChild( T, e )</p><p>  初始條件:

18、二叉樹T存在,e是T中某個(gè)結(jié)點(diǎn)。</p><p>  操作結(jié)果:返回e的右孩子。若e無(wú)右孩子,則返回“空”。</p><p>  LeftSibling( T, e )</p><p>  初始條件:二叉樹T存在,e是T中某個(gè)結(jié)點(diǎn)。</p><p>  操作結(jié)果:返回e的左兄弟。若e是T的左孩子或無(wú)左兄弟,則返回“空”。</p>

19、<p>  RightSibling( T, e )</p><p>  初始條件:二叉樹T存在,e是T中某個(gè)結(jié)點(diǎn)。</p><p>  操作結(jié)果:返回e的右兄弟。若e是T的右孩子或無(wú)右兄弟,則返回“空”。 InsertChild( T, p, LR, c )</p><p>  初始條件:二叉樹T存在,p指向T中某個(gè)結(jié)點(diǎn),LR為0或1,非

20、空二叉樹c與T不相交且右子樹為空。</p><p>  操作結(jié)果:根據(jù)LR為0或1,插入c為T中p所指結(jié)點(diǎn)的左或右子樹。p所指結(jié)點(diǎn)的原有左或右子樹則成為c的右子樹。</p><p>  DeleteChild( T, p, LR )</p><p>  初始條件:二叉樹T存在,p指向T中某個(gè)結(jié)點(diǎn),LR為0或1。</p><p>  操作結(jié)果:

21、根據(jù)LR為0或1,刪除T中p所指結(jié)點(diǎn)的左或右子樹。PreOrderTraverse( T, visit() )</p><p>  初始條件:二叉樹T存在,Visit是對(duì)結(jié)點(diǎn)操作的應(yīng)用函數(shù)。</p><p>  操作結(jié)果:先序遍歷T,對(duì)每個(gè)結(jié)點(diǎn)調(diào)用函數(shù)Visit一次且僅一次。一旦visit()失敗,則操作失敗。</p><p>  InOrderTraverse(

22、T, visit() )</p><p>  初始條件:二叉樹T存在,Visit是對(duì)結(jié)點(diǎn)操作的應(yīng)用函數(shù)。</p><p>  操作結(jié)果:中序遍歷T,對(duì)每個(gè)結(jié)點(diǎn)調(diào)用函數(shù)Visit一次且僅一次。一旦visit()失敗,則操作失敗。</p><p>  PostOrderTraverse( T, visit() )</p><p>  初始條件:二

23、叉樹T存在,Visit是對(duì)結(jié)點(diǎn)操作的應(yīng)用函數(shù)。</p><p>  操作結(jié)果:后序遍歷T,對(duì)每個(gè)結(jié)點(diǎn)調(diào)用函數(shù)Visit一次且僅一次。一旦visit()失敗,則操作失敗。</p><p>  LevelOrderTraverse( T, visit() )</p><p>  初始條件:二叉樹T存在,Visit是對(duì)結(jié)點(diǎn)操作的應(yīng)用函數(shù)。</p><p

24、>  操作結(jié)果:層次遍歷T,對(duì)每個(gè)結(jié)點(diǎn)調(diào)用函數(shù)Visit一次且僅一次。一旦visit()失敗,則操作失敗。</p><p>  }ADT BinaryTree</p><p>  2 、隊(duì)列的抽象數(shù)據(jù)類型定義</p><p>  ADT Queue{</p><p>  數(shù)據(jù)對(duì)象:D={ai|ai∈ElemSet, i=1,2, …,n

25、, n≧0}</p><p>  數(shù)據(jù)關(guān)系:R1={<ai-1,ai>|ai-1,ai∈D, i=1,2, …,n }</p><p>  約定:a1為隊(duì)列頭,an為隊(duì)列尾。</p><p><b>  基本操作:</b></p><p>  InitQueue( &q)</p><

26、;p>  操作結(jié)果:構(gòu)造一個(gè)空隊(duì)列q。</p><p>  DestroyQueue ( &q)</p><p>  初始條件:隊(duì)列q已存在。</p><p>  操作結(jié)果:銷毀隊(duì)列q。</p><p>  ClearQueue ( &q)</p><p>  初始條件:隊(duì)列q已存在。</p

27、><p>  操作結(jié)果:將q清為空隊(duì)列。</p><p>  QueueEmpty( q )</p><p>  初始條件:隊(duì)列q已存在。</p><p>  操作結(jié)果:若q為空隊(duì)列,則返回TRUE,否則返回FALSE。</p><p>  QueueLength(q )</p><p>  初始條

28、件:隊(duì)列q已存在。</p><p>  操作結(jié)果:返回q的數(shù)據(jù)元素個(gè)數(shù),即隊(duì)列的長(zhǎng)度。</p><p>  GetHead( q, &e )</p><p>  初始條件:隊(duì)列q已存在且非空。</p><p>  操作結(jié)果:用e返回q的隊(duì)頭元素。</p><p>  EnQueue( &q, e )&l

29、t;/p><p>  初始條件:隊(duì)列q已存在。</p><p>  操作結(jié)果:插入元素e為q的新的隊(duì)尾元素。</p><p>  DeQueue( &q, &e )</p><p>  初始條件:隊(duì)列q已存在且非空。</p><p>  操作結(jié)果:刪除q的隊(duì)頭元素,并用e返回其值。</p>&

30、lt;p>  QueueTraverse(q, visit() )</p><p>  初始條件:隊(duì)列q已存在且非空</p><p>  操作結(jié)果:從隊(duì)頭到隊(duì)尾依次對(duì)q的每個(gè)數(shù)據(jù)元素調(diào)用函數(shù)visit()。一旦visit()失敗,則操作失敗。</p><p>  3、 棧的抽象數(shù)據(jù)類型定義</p><p>  ADT Stack{&l

31、t;/p><p>  數(shù)據(jù)對(duì)象:D={ai|ai∈ElemSet, i=1,2, …,n, n≧0}</p><p>  數(shù)據(jù)關(guān)系:R1={<ai-1,ai>|ai-1,ai∈D, i=1,2, …,n }</p><p>  約定:a1為棧底,an為棧頂。</p><p><b>  基本操作:</b><

32、/p><p>  InitStack (s):棧初始化。</p><p>  初始條件:棧s不存在。</p><p>  操作結(jié)果:構(gòu)造一個(gè)空棧。</p><p>  StackEmpty(s):判棧空。</p><p>  初始條件:棧s已存在。</p><p>  操作結(jié)果:若棧s為空棧則返回

33、1,否則返回0。</p><p>  Push(s,e):入棧。</p><p>  初始條件: 棧s已存在。</p><p>  操作結(jié)果:在棧s的頂部插入一個(gè)新元素e,e成為新的棧頂元素,棧發(fā)生變化。</p><p>  Pop(s,e):出棧。</p><p>  初始條件:棧s存在且非空。</p>

34、<p>  操作結(jié)果:將棧s的棧頂元素從棧中刪除,并用e返回其值,棧發(fā)生變化。</p><p>  GetTop(s,e):讀棧頂元素。</p><p>  初始條件: 棧s存在且非空。</p><p>  操作結(jié)果:讀棧頂元素并用e返回其值,棧不變化。</p><p><b>  3.2模塊設(shè)計(jì)</b>&l

35、t;/p><p>  本程序包括七個(gè)模塊:</p><p><b> ?。?)主程序模塊</b></p><p>  void main()</p><p><b>  {</b></p><p><b>  初始化;</b></p><

36、p><b>  建立二叉樹;</b></p><p>  遞歸先序遍歷二叉樹并輸出;</p><p>  遞歸中序遍歷二叉樹并輸出;</p><p>  遞歸后序遍歷二叉樹并輸出;</p><p>  非遞歸中序遍歷二叉樹并輸出;</p><p>  層次遍歷二叉樹并輸出;}</p&g

37、t;<p> ?。?)二叉樹建立模塊——建立一個(gè)二叉樹并對(duì)二叉樹進(jìn)行初始化</p><p> ?。?)遞歸先序遍歷模塊——實(shí)現(xiàn)對(duì)二叉樹的遞歸先序遍歷并輸出</p><p>  (4)遞歸中序遍歷模塊——實(shí)現(xiàn)對(duì)二叉樹的遞歸中序遍歷并輸出</p><p> ?。?)遞歸后序遍歷模塊——實(shí)現(xiàn)對(duì)二叉樹的遞歸后序遍歷并輸出</p><p>

38、; ?。?)非遞歸中序遍歷模塊——實(shí)現(xiàn)對(duì)二叉樹的遞歸后序遍歷并輸出</p><p> ?。?)層次遍歷模塊——實(shí)現(xiàn)對(duì)二叉樹的層次遍歷并輸出</p><p><b>  4 詳細(xì)設(shè)計(jì)</b></p><p>  1、主要模塊的流程圖</p><p>  樹的遍歷實(shí)質(zhì)上是將二叉樹的各個(gè)結(jié)點(diǎn)轉(zhuǎn)換成為一個(gè)線性序列來(lái)表示。先序遍歷

39、二叉樹是先訪問(wèn)根節(jié)點(diǎn),然后遍歷右子樹,最后遍歷左子樹。中序遍歷二叉樹是先按遍歷右子樹,然后訪問(wèn)根節(jié)點(diǎn),最后遍歷左子樹。后序遍歷是先按遍歷左子樹,然后遍歷右子樹,最后訪問(wèn)根節(jié)點(diǎn)。層次遍歷是從二叉樹的第一層(根節(jié)點(diǎn))開(kāi)始,從上至下逐層遍歷,在同一層中,則按從左到右的順序?qū)Y(jié)點(diǎn)逐個(gè)訪問(wèn)。</p><p>  程序系統(tǒng)流程示意圖如圖4.1:</p><p>  圖4.1 程序系統(tǒng)流程示意圖<

40、/p><p><b>  主函數(shù):</b></p><p><b>  main()</b></p><p>  { bitree t,H; </p><p>  t=creatree();</p><p>  printf("\n遞歸先序序列:"

41、);</p><p>  preorder(t);</p><p>  printf("\n遞歸中序序列:");</p><p>  inorder(t);</p><p>  printf("\n遞歸后序序列:");</p><p>  postorder(t);</p&

42、gt;<p>  printf("\n非遞歸中序遍歷序列:");</p><p>  nrinorder(t);</p><p>  printf("\n層次遍歷序列:");</p><p>  levelorder(t);}</p><p><b>  2、數(shù)據(jù)類型的定義<

43、;/b></p><p> ?。?)二叉樹的二叉鏈表存儲(chǔ)類型</p><p>  typedef struct node</p><p>  { char data;</p><p>  struct node *lchild,*rchild;</p><p>  } bitnode,*bitree;<

44、;/p><p> ?。?)隊(duì)列類型的定義</p><p>  typedef struct</p><p>  {elements 1 elem[N]; /*存放二叉鏈表結(jié)點(diǎn)指針*/</p><p>  int front;int rear;</p><p>  int LEN ;} bitree q[N];</p&

45、gt;<p>  3、主要模塊的算法描述</p><p><b> ?。?)建立二叉樹</b></p><p>  初始化隊(duì)列,建立一棵二叉樹</p><p>  /*按完全二叉樹形式輸入各結(jié)點(diǎn),創(chuàng)建一棵二叉樹*/</p><p>  bitree creatree()</p><p&g

46、t;  { /*隊(duì)列初始化*/</p><p>  int front=0,rear=-1;char ch;</p><p>  bitree root,s;</p><p>  printf("請(qǐng)輸入字符并以#結(jié)束\n");</p><p>  ch=getchar();</p><p> 

47、 while (ch!='#')</p><p>  { if (ch!='$')</p><p>  { s=(bitree)malloc(LEN);</p><p>  s->data=ch;</p><p>  s->lchild=s->rchild=NULL;</p&

48、gt;<p><b>  }</b></p><p><b>  else </b></p><p><b>  s=NULL;</b></p><p><b>  rear++;</b></p><p>  q[rear]=s;</p

49、><p>  if (rear==0) root=s;</p><p><b>  else</b></p><p>  { if (s&&q[front])</p><p>  if (rear%2==1) </p><p>  q[front]->lchild=s;&

50、lt;/p><p>  else q[front]->rchild=s;</p><p>  if (rear%2==0) front++; </p><p><b>  }</b></p><p>  ch=getchar(); </p><p>  }return root;</p&

51、gt;<p><b>  }</b></p><p>  二叉樹建立的流程圖如圖4.2:</p><p>  圖 4.2二叉樹的建立</p><p> ?。?)遞歸先序遍歷算法</p><p>  利用文件寫入二叉樹的各個(gè)結(jié)點(diǎn)。對(duì)二叉樹進(jìn)行遞歸先序遍歷</p><p>  void

52、preorder(bitree t)</p><p>  { if (t)</p><p><b>  { </b></p><p>  FILE *fp1 = fopen("14.txt", "a");</p><p><b>  if(!fp1)</b

53、></p><p>  {printf("create and open file failed\n");/*打開(kāi)文件失敗*/}</p><p>  fprintf(fp1,"%c,",t->data); </p><p>  fclose(fp1); </p><p>  printf(&

54、quot;%c ",t->data);</p><p>  preorder(t->lchild);/*先序遍歷左子樹*/</p><p>  preorder(t->rchild);/*先序遍歷右子樹*/ }}</p><p>  二叉樹的中序遍歷的流程圖如圖4.3</p><p>  圖4.3二叉樹的中序遍歷&

55、lt;/p><p>  (3)遞歸中序遍歷算法</p><p>  void inorder(bitree t)</p><p>  { bitree p,s[N];int top=-1;p=t;</p><p>  while(p||top!=-1)</p><p>  { if (p)</p>&

56、lt;p>  { s[++top]=p;p=p->lchild; /*左孩子入棧*/}</p><p><b>  else</b></p><p>  { p=s[top--];/*退棧*/</p><p>  FILE *fp1 = fopen("12.txt", "a+");

57、</p><p><b>  if(!fp1)</b></p><p>  { printf("create and open file failed\n");/*打開(kāi)文件失敗*/}</p><p>  fprintf(fp1,"%c,",p->data); /*打開(kāi)文件讀入結(jié)點(diǎn)*/</p&g

58、t;<p>  fclose(fp1); </p><p>  printf("%c ",p->data);</p><p>  p=p->rchild;</p><p><b>  }}}</b></p><p><b>  (4)后序遍歷算法</b>

59、</p><p>  void postorder(bitree t)</p><p>  { if (t) </p><p><b>  { </b></p><p>  postorder(t->lchild); /*后序遍歷左子樹*/ </p><p> 

60、 postorder(t->rchild); /*后序遍歷右子樹*/</p><p>  FILE *fp1 = fopen("13.txt", "a+");</p><p><b>  if(!fp1)</b></p><p><b>  {</b></p>&

61、lt;p>  printf("create and open file failed\n");/*打開(kāi)文件失敗*/</p><p><b>  }</b></p><p>  fprintf(fp1,"%c,",t->data); </p><p>  fclose(fp1); printf(

62、"%c ",t->data);</p><p><b>  }}</b></p><p> ?。?)非遞歸中序遍歷二叉樹</p><p>  /*利用棧對(duì)二叉樹進(jìn)行遍歷*/</p><p>  void nrinorder(bitree t)</p><p><b&

63、gt;  {</b></p><p>  bitree stack[N],p;</p><p><b>  int top;</b></p><p>  if(t==NULL) return;</p><p><b>  top=0;</b></p><p>&l

64、t;b>  p=t;</b></p><p>  while(!(p==NULL&&top==0))</p><p>  {while(p!=NULL)</p><p>  {if(top<N-1)</p><p>  {stack[top]=p;</p><p><b&g

65、t;  top++;}</b></p><p>  else{printf("棧溢出");</p><p><b>  return;}</b></p><p>  p=p->lchild;}</p><p>  if(top<=0) return;</p>&l

66、t;p>  else{top--;</p><p>  p=stack[top];</p><p>  printf("%c",p->data); </p><p>  p=p->rchild;</p><p><b>  }}}</b></p><p>&l

67、t;b>  (6)層次遍歷算法</b></p><p>  /*利用隊(duì)列對(duì)二叉樹進(jìn)行遍歷*/</p><p>  void levelorder(bitree t)</p><p><b>  {</b></p><p>  int front=0,rear=-1;</p><p&g

68、t;  if(t==NULL) return;</p><p>  q[++rear]=t;</p><p>  while(front<=rear)</p><p>  {printf("%c ",q[front]->data);</p><p>  if(q[front]->lchild!=NULL)

69、</p><p>  q[++rear]=q[front]->lchild;</p><p>  if (q[front]->rchild!=NULL)</p><p>  q[++rear]=q[front]->rchild; front++;}}</p><p><b>  5 測(cè)試分析</b>

70、</p><p> ?。?)輸入二叉樹結(jié)點(diǎn)為abc$de$$$fj$h#。</p><p>  結(jié)果輸出如圖5.1:</p><p>  圖5.1程序輸出結(jié)果</p><p>  測(cè)試結(jié)果分析如圖5.2:</p><p>  圖5.2測(cè)試分析結(jié)果</p><p>  (2)輸入二叉樹的結(jié)點(diǎn) as

71、dflkijh#。</p><p><b>  輸出結(jié)果如圖5.3</b></p><p><b>  圖5.3輸出結(jié)果</b></p><p><b>  6 課程設(shè)計(jì)總結(jié)</b></p><p>  課程設(shè)計(jì)是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識(shí),發(fā)現(xiàn),提出,分析和解決實(shí)際問(wèn)題,鍛煉實(shí)

72、踐能力的重要環(huán)節(jié),是對(duì)學(xué)生實(shí)際工作能力的具體訓(xùn)練和考察過(guò)程.隨著科學(xué)技術(shù)發(fā)展的日新日異,當(dāng)今計(jì)算機(jī)應(yīng)用在生活中可以說(shuō)得是無(wú)處不在。因此作為二十一世紀(jì)的大學(xué)來(lái)說(shuō)掌握計(jì)算機(jī)開(kāi)發(fā)技術(shù)是十分重要的。</p><p>  開(kāi)始的時(shí)候真的感覺(jué)編程是一件很無(wú)聊的事情,不過(guò)當(dāng)一個(gè)程序運(yùn)行成功的時(shí)候那種喜悅是無(wú)法言語(yǔ)的,那種成就感是無(wú)法比擬的。又經(jīng)過(guò)幾天的努力,終于把程序完成了,盡管程序還是有很多錯(cuò)誤和漏洞,不過(guò)還是很高興的。無(wú)論

73、如何是自己的勞動(dòng)成果,是自己經(jīng)過(guò)努力得到的成績(jī)。</p><p>  在這次課程設(shè)計(jì)中我看到了自己編程的很多不足之處,例如,在程序設(shè)計(jì)過(guò)程中,我經(jīng)常沒(méi)有申請(qǐng)內(nèi)存就開(kāi)始使用,造成了很大的錯(cuò)誤。在一塊內(nèi)存使用完了之后沒(méi)有及時(shí)釋放其內(nèi)存,雖然在這里沒(méi)有出現(xiàn)什么錯(cuò)誤,但是為以后寫其他程序造成了隱患。當(dāng)然,在程序中,我使用模板為各種數(shù)據(jù)類型都可以操作,提供了很大方便。在輸入時(shí),采用用戶自定義空標(biāo)記,方便數(shù)據(jù)的快速輸入。在遞

74、歸算法中,用一個(gè)無(wú)參數(shù)的函數(shù)調(diào)用有參數(shù)的函數(shù),更加方便更加合理。</p><p>  通過(guò)這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來(lái),從理論中得出結(jié)論,才能真正為社會(huì)服務(wù),從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。在設(shè)計(jì)的過(guò)程中遇到問(wèn)題,可以說(shuō)得是困難重重,這畢竟第二次做的,難免會(huì)遇到過(guò)各種各樣的問(wèn)題,同時(shí)在設(shè)計(jì)的過(guò)程中發(fā)現(xiàn)了自己的不足之處,

75、對(duì)以前所學(xué)過(guò)的知識(shí)理解得不夠深刻,掌握得不夠牢固。</p><p>  在這次二叉樹遍歷算法的設(shè)計(jì)中,不僅讓我更加理解了二叉樹的特點(diǎn),更加讓我鍛煉了C語(yǔ)言的程序設(shè)計(jì)能力,并學(xué)到了一些常用的程序設(shè)計(jì)技巧,深刻明白了程序的可讀性和健壯性的重大作用。</p><p><b>  參考文獻(xiàn)</b></p><p>  [1] 黃同成,黃俊民,董建寅.?dāng)?shù)

76、據(jù)結(jié)構(gòu)[M].北京:中國(guó)電力出版社,2008</p><p>  [2] 董建寅,黃俊民,黃同成.?dāng)?shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)指導(dǎo)與題解[M].北京:中國(guó)電力出版社,2008</p><p>  [3] 嚴(yán)蔚敏,吳偉民. 數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言版)[M]. 北京:清華大學(xué)出版社,2002</p><p>  [4] 劉振鵬,張曉莉,郝杰.?dāng)?shù)據(jù)結(jié)構(gòu)[M].北京:中國(guó)鐵道出版社,2003&l

77、t;/p><p>  [5] QQ群,《我愛(ài)編程(VC++&C#)》</p><p>  [6] www.baidu.com. 百度</p><p><b>  致謝</b></p><p>  在這次課程設(shè)計(jì)中,時(shí)光如馬駒匆匆的流過(guò),給我?guī)?lái)的有甘甜也有苦澀。期間我也得到了許多人的幫助,回首一路,心里充滿感激之情。

78、</p><p>  首先,我要感謝的是我的指導(dǎo)老師。因?yàn)槲覀儧](méi)有選老師的題目,而選的其他題目。是柳老師先對(duì)我們的課題以及程序進(jìn)行肯定,然后我們才有機(jī)會(huì)做自己的課題。在指導(dǎo)中,老師嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度、豐富淵博的知識(shí)、敏銳的學(xué)術(shù)思維、精益求精的工作態(tài)度以及侮人不倦的師者風(fēng)范是我終生學(xué)習(xí)的楷模,老師的高深精湛的造詣與嚴(yán)謹(jǐn)求實(shí)的治學(xué)精神,將永遠(yuǎn)激勵(lì)著我。</p><p>  其次,我還要感謝一直在我

79、身邊的同學(xué)對(duì)我的無(wú)私幫助,正因?yàn)橛辛怂也拍艿靡皂樌瓿烧撐?。因?yàn)槲覀兪俏覀儍蓚€(gè)人一起完成此次課程設(shè)計(jì)的論文。同時(shí)實(shí)驗(yàn)室的老師也時(shí)常幫助我,在此我也衷心的感謝他們。很感謝這次的課程設(shè)計(jì),它使我更加深刻地體會(huì)到多看專業(yè)書的重要性,只有掌握了一定量的專業(yè)知識(shí)才能得心應(yīng)手地解決諸多問(wèn)題。另外,做任何事都要有耐心,不要一遇到困難就退縮。在學(xué)習(xí)和工作中要時(shí)刻謹(jǐn)記“團(tuán)結(jié)”二字,它好比通向成功的鋪路石,不可或缺。通過(guò)本次“二叉樹的排序問(wèn)題”課題的撰寫

溫馨提示

  • 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ù)僅提供信息存儲(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)論