2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  目錄</b></p><p>  題目介紹.............................................................................4</p><p>  1、題目.......................................................

2、.........................................4</p><p>  2、任務(wù)................................................................................................4</p><p>  3、要求...........................

3、.....................................................................4</p><p>  二、需求分析..............................................................................4</p><p>  1、應(yīng)用環(huán)境設(shè)定.........

4、........................................................................4</p><p>  2、用戶界面命令行界面.....................................................................4</p><p>  3、輸入方式............

5、.............................................................................5</p><p>  4、輸出方式.........................................................................................5</p><p>  

6、5、數(shù)據(jù)存儲方式.................................................................................5</p><p>  6、程序功能.........................................................................................5</p>

7、<p>  概要設(shè)計..............................................................................5</p><p>  1、自定義數(shù)據(jù)類型.............................................................................5</p><

8、;p>  2、數(shù)據(jù)存儲結(jié)構(gòu).................................................................................6</p><p>  3、程序所用各函數(shù)功能.....................................................................6</p><p&

9、gt;  4、程序流程圖.....................................................................................8</p><p>  詳細(xì)設(shè)計..............................................................................9</p><

10、;p>  1、自定義數(shù)據(jù)結(jié)構(gòu).............................................................................9</p><p>  2、主函數(shù)main()............................................................................9 </p>

11、<p>  3、子函數(shù)一.......................................................................................11</p><p>  4、子函數(shù)二....................................................................................

12、...12</p><p>  5、子函數(shù)三.......................................................................................13</p><p>  6、case1.h.................................................................

13、........................14</p><p>  7、case2.h.........................................................................................15</p><p>  8、case3.h.......................................

14、..................................................16</p><p>  9、case4.h.........................................................................................17</p><p>  五、調(diào)試結(jié)果...............

15、..............................................................17</p><p>  進(jìn)入菜單界面...........................................................................................17</p><p>  選擇1,構(gòu)建只含根結(jié)點

16、的帶權(quán)二叉樹................................................18</p><p>  選擇2,輸出對應(yīng)二叉樹的赫夫曼樹....................................................18</p><p>  選擇3,測試赫夫曼樹在電報通信中的運用.............................

17、...........19</p><p>  選擇4,退出菜單界面............................................................................19</p><p>  六、心得總結(jié)..................................................................

18、...........20</p><p>  七、參考資料.............................................................................21</p><p><b>  題目介紹</b></p><p><b>  1、 題目:</b><

19、/p><p><b>  赫夫曼樹的建立</b></p><p><b>  2、 任務(wù):</b></p><p>  按給定的數(shù)據(jù)建立赫夫曼樹</p><p><b>  3、 要求:</b></p><p> ?。?)可以建立函數(shù)輸入二叉樹;</p

20、><p>  (2)輸出其赫夫曼樹。</p><p> ?。?)在上交資料中請寫明:存儲結(jié)構(gòu)、基本算法(可以使用程序流程圖)、輸入輸出、源程序、測試數(shù)據(jù)和結(jié)果。提供良好的菜單操作界面</p><p><b>  需求分析</b></p><p><b>  1、應(yīng)用環(huán)境設(shè)定:</b></p>

21、<p>  電報通信的數(shù)碼撥號時,我通常會用到十進(jìn)制、八進(jìn)制、或者十六進(jìn)制數(shù)等。而輸入數(shù)字后,數(shù)據(jù)將以二進(jìn)制數(shù)編碼后進(jìn)行遠(yuǎn)距離通信傳送。電文傳輸過程中,為了提高通訊效率,通常會要求所傳輸?shù)亩M(jìn)制數(shù)碼盡可能的短。如果對每個字符設(shè)計長度不等的編碼,且讓電文中出現(xiàn)次數(shù)較多的字符采用盡可能短的編碼,則傳送電文的總長便可減少。但是同時要求各數(shù)字編碼之間互不為前綴,從而不出現(xiàn)誤碼。設(shè)計一個程序構(gòu)建一個赫夫曼樹輸出最優(yōu)傳輸碼。</

22、p><p>  2、用戶界面命令行界面:</p><p>  (1)構(gòu)建只含根結(jié)點的帶權(quán)二叉樹。</p><p> ?。?)輸出第一部對應(yīng)二叉樹的赫夫曼樹。</p><p> ?。?)給定任意進(jìn)制(小于17)的數(shù)字在電報通信中各自出現(xiàn)的頻率,然后分別列出十個數(shù)字各自的最佳編碼(最佳前綴碼)以及打印出傳輸10m個按照給定頻率出現(xiàn)的十進(jìn)制數(shù)字時所需要

23、的二進(jìn)制數(shù)碼的個數(shù)。</p><p><b>  3、輸入方式:</b></p><p>  (1)輸入二叉樹的個數(shù)(小于17)以及各個二叉樹的權(quán)值。</p><p>  (2)輸入相關(guān)數(shù)據(jù):</p><p> ?、佟错樞蜉斎雗個n個數(shù)字在電報中出現(xiàn)的頻率。</p><p> ?、?、輸入需要傳輸

24、的n進(jìn)制數(shù)字的個數(shù)參數(shù)m(總數(shù)為</p><p><b>  10m 個)。</b></p><p><b>  4、輸出方式:</b></p><p>  (1)輸出所創(chuàng)建赫夫曼樹中各結(jié)點的信息:(權(quán)值,父節(jié)點位置,左兒子位置,右兒子位置)。</p><p> ?。?)輸出相關(guān)數(shù)據(jù):</p&

25、gt;<p> ?。?)輸出0到n各個數(shù)字的最佳編碼(最佳前綴碼)。</p><p> ?。?)輸出所創(chuàng)建的赫夫曼樹的樹權(quán)值(WPL)。</p><p> ?。?)輸出所傳輸?shù)亩M(jìn)制數(shù)碼(電文長度)的總長度。</p><p><b>  5、數(shù)據(jù)存儲方式:</b></p><p>  全部在內(nèi)存存放,不使用

26、硬盤上的文件或其他數(shù)據(jù)源,程序執(zhí)行過程中和結(jié)束后不保存數(shù)據(jù)。</p><p><b>  6、程序功能:</b></p><p> ?。?)創(chuàng)建赫夫曼數(shù)。</p><p>  (2)實現(xiàn)赫夫曼樹在電報通信中的應(yīng)用。</p><p><b>  三、概要設(shè)計</b></p><p&

27、gt;  1、自定義數(shù)據(jù)類型:</p><p><b> ?、?</b></p><p>  typedef struct</p><p><b>  {</b></p><p>  int weight;/*假設(shè)葉子權(quán)值為整型*/</p><p>  int lchild,

28、rchild,parent;/*左孩子,右孩子,父結(jié)點*/</p><p>  }Htnode;/*哈夫曼樹結(jié)點類型*/</p><p><b>  Htnode</b></p><p><b> ?、?</b></p><p>  typedef struct</p><p&g

29、t;<b>  {</b></p><p>  char *code;/*編碼*/</p><p>  int length;/*編碼的長度*/</p><p>  }CodeType;/*葉編碼類型 */</p><p><b>  CodeType</b></p><p>

30、;<b>  2、數(shù)據(jù)存儲結(jié)構(gòu)</b></p><p><b> ?、?</b></p><p>  用線性表存儲二叉樹各個結(jié)點,通過線性表構(gòu)造赫夫曼樹:</p><p>  Htnode huftree[]</p><p><b> ?、?</b></p>&l

31、t;p>  用線性表存儲各葉子的二進(jìn)制編碼:</p><p>  CodeType[]</p><p>  3、程序所用各函數(shù)功能:</p><p><b> ?。?)創(chuàng)建赫夫曼樹</b></p><p>  void Hufcreating(Htnode huftree[], int n)</p>

32、<p>  輸入用線性表Htnode huftree[]存儲的n個只含根結(jié)點的二叉樹,及其權(quán)值。函數(shù)將各個根結(jié)點的父節(jié)點及孩子都初始化為-1,表示赫夫曼樹創(chuàng)建之前,每個根結(jié)點不存在父節(jié)點和孩子,通過Selection()函數(shù)對各根結(jié)點的調(diào)用,逐步創(chuàng)建各個節(jié)點的父節(jié)點,最后構(gòu)建成為赫夫曼樹,n個二叉樹最終成為了赫夫曼樹的葉子。</p><p><b>  選擇最小兩個結(jié)點</b>&l

33、t;/p><p>  void Selection(Htnode huftree[], int n, int *s1, int *s2)</p><p>  對線性表Htnode huftree[]存儲的n個只含根結(jié)點的二叉樹進(jìn)行選擇。選擇兩個權(quán)值最小的根結(jié)點分別作為新產(chǎn)生結(jié)點孩子,新結(jié)點作為兩最小結(jié)點的父結(jié)點,繼續(xù)存儲到線性表Htnode huftree[]的n個根結(jié)點后面。循環(huán)調(diào)用Sele

34、ction()函數(shù)對父結(jié)點為-1的所有結(jié)點再做選擇,逐步構(gòu)建赫夫曼樹。</p><p>  給哈夫曼樹中各個節(jié)點的編碼</p><p>  void HuftreeCode(Htnode huftree[], CodeType cd[], int n)</p><p>  對創(chuàng)建好的赫夫曼樹的葉子進(jìn)行編碼。</p><p><b>

35、  函數(shù)功能示意圖</b></p><p><b>  4、程序流程圖</b></p><p><b>  詳細(xì)設(shè)計</b></p><p><b>  1、自定義數(shù)據(jù)結(jié)構(gòu)</b></p><p>  /*構(gòu)造數(shù)據(jù)類型: */</p><p>

36、;  typedef struct</p><p><b>  {</b></p><p>  int weight;/*假設(shè)葉子權(quán)值為整型*/</p><p>  int lchild,rchild,parent;/*左孩子,右孩子,父結(jié)點*/</p><p>  }Htnode;/*哈夫曼樹結(jié)點類型*/</p&

37、gt;<p>  typedef struct</p><p><b>  {</b></p><p>  char *code;/*編碼*/</p><p>  int length;/*編碼的長度*/</p><p>  }CodeType;/*葉編碼類型 */</p><p>

38、<b>  主函數(shù)main()</b></p><p>  #include "windows.h"</p><p>  #include "data.h"</p><p>  #include "stdio.h"</p><p>  #include &quo

39、t;stdlib.h"</p><p>  #include "s1s2.h"</p><p>  #include "creatingheftree.h"</p><p>  #include "leafcoding.h"</p><p>  #include "

40、;case1.h"</p><p>  #include "case2.h"</p><p>  #include "case3.h"</p><p>  #include "case4.h"</p><p>  #include "math.h"<

41、;/p><p><b>  /*主函數(shù):*/</b></p><p>  void main()</p><p><b>  {</b></p><p><b>  char d;</b></p><p><b>  int* n;</b&g

42、t;</p><p><b>  int m=0;</b></p><p><b>  n=&m;</b></p><p>  Htnode huftree[34];</p><p>  printf(" 《O(∩_∩)O~大家好!歡迎進(jìn)入

43、菜單界面!》\n\n");/*程序開始*/</p><p>  loop: printf (" * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n");</p><p>  printf (" * 1.構(gòu)建只含根結(jié)點的帶權(quán)二叉樹

44、 *\n"); </p><p>  printf (" * 2.輸出對應(yīng)二叉樹的赫夫曼樹(必須先創(chuàng)建二叉樹) *\n"); </p><p>  printf (" * 3.赫夫曼樹在電報通信中的應(yīng)用

45、 *\n");</p><p>  printf (" * 4.退出 *\n"); </p><p>  printf (" * * * * * * * * * * * * * * * * * * * * * *

46、 * * * * * * *\n"); </p><p>  printf (" 請選擇指令:"); </p><p>  fflush(stdin);</p><p>  d=getchar();</p><p><b>  switch(d)</b

47、></p><p><b>  { </b></p><p>  case '1': {</p><p>  case1(huftree,n);</p><p>  printf("\n\n按回車鍵返回菜單欄!");</p><p>  fflush(s

48、tdin);</p><p>  getchar();</p><p>  system("cls");</p><p>  goto loop;</p><p><b>  }</b></p><p>  case '2': {</p><

49、;p>  case2(huftree,n);</p><p>  printf("\n\n按回車鍵返回菜單欄!");</p><p>  fflush(stdin);</p><p>  getchar();</p><p>  system("cls");</p><p>

50、;  goto loop;</p><p><b>  }</b></p><p>  case '3': {</p><p><b>  case3();</b></p><p>  printf("\n\n按回車鍵返回菜單欄!");</p>&

51、lt;p>  fflush(stdin);</p><p>  getchar();</p><p>  system("cls");</p><p>  goto loop;</p><p><b>  }</b></p><p>  case '4':

52、 {</p><p><b>  case4();</b></p><p>  fflush(stdin);</p><p>  getchar();</p><p>  system("cls");</p><p><b>  break;</b>&l

53、t;/p><p><b>  }</b></p><p>  default : {printf("\n╮(╯_╰)╭SORRY! 輸入值錯誤!請再次輸入!\n");</p><p>  goto loop;</p><p><b>  }</b></p><

54、p><b>  }</b></p><p><b>  }</b></p><p>  3、子函數(shù)一:創(chuàng)建赫夫曼樹</p><p>  void Hufcreating(Htnode huftree[], int n)</p><p><b>  {</b></p&

55、gt;<p>  int i,s1,s2,m,sum;</p><p>  m = 2 * n - 1;/*計算哈夫曼樹的結(jié)點總數(shù)*/</p><p>  for(i = 1; i <= n; i++)/*初始化每片葉子自成一棵樹*/</p><p><b>  {</b></p><p>  huf

56、tree[i].lchild = -1;</p><p>  huftree[i].rchild =-1;</p><p>  huftree[i].parent = -1;</p><p>  }/*end for*/</p><p>  for(i = n + 1; i <= m; i++)/*給剩下的節(jié)點左孩子,右孩子,父結(jié)點初&

57、lt;/p><p><b>  始化-1*/</b></p><p><b>  {</b></p><p>  huftree[i].weight = -1;</p><p>  huftree[i].lchild = -1;</p><p>  huftree[i].rchi

58、ld = -1;</p><p>  huftree[i].parent = -1;</p><p>  }/*end for*/</p><p>  for(i=1; i<=n-1; i++)/*生成n-1個非葉子結(jié)點的循環(huán)&&*/</p><p><b>  {</b></p>&

59、lt;p>  Selection(huftree, n-1+i, &s1, &s2);</p><p>  sum = huftree[s1].weight + huftree[s2].weight;/*求和,構(gòu)造父節(jié)點*/</p><p>  huftree[n + i].weight = sum;</p><p>  huftree[s1]

60、.parent = n+i;</p><p>  huftree[s2].parent = n+i;/*最小的兩個節(jié)點的父節(jié)點的數(shù)組的下標(biāo)*/</p><p>  huftree[n + i].lchild = s1;/*父節(jié)點的左孩子下標(biāo)*/</p><p>  huftree[n + i].rchild = s2;/*父節(jié)點的右孩子下標(biāo)*/</p>

61、<p>  }/*end for*/</p><p><b>  }</b></p><p>  4、子函數(shù)二:選擇最小兩個節(jié)點</p><p>  void Selection(Htnode huftree[], int n, int *s1, int *s2)</p><p><b>  {&l

62、t;/b></p><p>  int i,min1,min2;/*兩個最小數(shù)*/</p><p>  for(i=1;i<n+1;i++)</p><p>  if(huftree[i].parent==-1)</p><p><b>  {</b></p><p>  min1 =

63、huftree[i].weight;</p><p>  *s1 = i;break;</p><p><b>  }</b></p><p>  for(i = 1; i <= n; i++)</p><p><b>  {</b></p><p>  if(huft

64、ree[i].parent == -1)</p><p><b>  {</b></p><p>  if(huftree[i].weight < min1)</p><p><b>  {</b></p><p>  min1 =huftree[i].weight;</p>&

65、lt;p><b>  *s1 = i;</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  min2 =huftree[i].weight;<

66、/p><p><b>  *s2 = i;</b></p><p><b>  }</b></p><p><b>  } </b></p><p><b>  }</b></p><p>  for(i = 1; i <= n;

67、 i++)</p><p><b>  {</b></p><p>  if(huftree[i].parent == -1 && huftree[i].weight < min2 && huftree[i].weight >= min1 && *s1 != i)</p><p>&l

68、t;b>  {</b></p><p>  min2 = huftree[i].weight;</p><p><b>  *s2 = i;</b></p><p><b>  } </b></p><p><b>  }</b></p>&

69、lt;p><b>  }</b></p><p>  5、子函數(shù)三:求哈夫曼樹中各個節(jié)點的編碼</p><p>  void HuftreeCode(Htnode huftree[], CodeType cd[], int n)</p><p><b>  {</b></p><p>  in

70、t i,c,f,k;</p><p>  char temp[17];/*暫存葉子編碼字符串,最后需要轉(zhuǎn)置*/</p><p>  for(i = 1; i <= n; i++)/*開始求每個葉子結(jié)點的編碼*/ </p><p><b>  {</b></p><p><b>  c = 0;</

71、b></p><p>  for(k = i, f = huftree[i].parent; f != -1; k = f,f = huftree[f].parent)</p><p><b>  {</b></p><p>  // printf("父節(jié)點%d\n",f);</p><p> 

72、 if(huftree[f].lchild == k)/*左分支是0*/</p><p>  temp[c++] = '0'; </p><p><b>  else</b></p><p>  temp[c++] = '1';/*右分支是1*/</p><p>  }/*內(nèi)循環(huán)結(jié)束后,第

73、一份葉子編碼結(jié)束*/</p><p>  cd[i].code = (char *)malloc(c+1); /*產(chǎn)生存儲編碼的空間*/</p><p>  cd[i].code[c--] = '\0';</p><p><b>  k = 0;</b></p><p>  while(c >= 0

74、)</p><p>  cd[i].code[k++] = temp[c--];/*將temp轉(zhuǎn)置到cd中*/</p><p>  /*cd[i].leaf = huftree[i].ch;*/</p><p>  cd[i].length = k;</p><p>  }/*end for*/</p><p><

75、;b>  }</b></p><p>  6、case1.h(構(gòu)建只含根結(jié)點的帶權(quán)二叉樹)</p><p>  void case1(Htnode huftree[],int *n)</p><p><b>  {</b></p><p>  system("cls");</p

76、><p>  printf(" 《歡迎構(gòu)建二叉樹!O(∩_∩)O~》\n\n");</p><p><b>  int i,m;</b></p><p>  printf("請輸入只含根結(jié)點的帶權(quán)二叉樹的個數(shù):");</p><p>  scanf(&q

77、uot;%d",&m);</p><p><b>  *n=m;</b></p><p><b>  if(m>17)</b></p><p>  printf("\n╮(╯_╰)╭SORRY! 輸入值過大!請再次輸入!\n\n");</p><p>&l

78、t;b>  else</b></p><p><b>  {</b></p><p>  printf("分別輸入每一個二叉樹的權(quán)值:(不含小數(shù))\n");</p><p>  for(i=1;i<m+1;i++)</p><p><b>  {</b>&

79、lt;/p><p>  printf("第%d個二叉樹的權(quán)值:",i);</p><p>  scanf("%d",&(huftree[i].weight));</p><p><b>  }</b></p><p>  Hufcreating(huftree, m);<

80、/p><p>  printf("\n\n O(∩_∩)O~GOOD!只含根結(jié)點的帶權(quán)二叉樹構(gòu)建完畢!\n\n");</p><p><b>  }</b></p><p><b>  }</b></p><p>  7、case2.h(輸出對應(yīng)二叉樹的赫夫曼樹(必

81、須先創(chuàng)建二叉樹))</p><p>  void case2(Htnode huftree[],int*n)</p><p><b>  {</b></p><p>  system("cls");</p><p><b>  int i,m;</b></p>&l

82、t;p><b>  m=*n;</b></p><p><b>  if(m==0)</b></p><p>  printf("╮(╯﹏╰)╭Sorry!您必須在選項一中先創(chuàng)建二叉樹。");</p><p><b>  else</b></p><p&g

83、t;<b>  {</b></p><p>  printf(" 《歡迎進(jìn)入創(chuàng)建赫夫曼樹界面!O(∩_∩)O~》\n\n");</p><p>  printf("分別輸出個結(jié)點在線性表中的詳細(xì)信息:('-1'表示該位置不存在)\n");</p><p>  for(

84、i=1;i<2*m-1;i++)</p><p><b>  {</b></p><p>  //printf("第%d個結(jié)點: (權(quán)值:%d,父結(jié)點位置:%d",i,huftree[i].weight,huftree[i].parent);</p><p>  //printf(",左兒子位置:%d,

85、右兒子位置:%d)\n",huftree[i].lchild,huftree[i].rchild);</p><p>  printf("第%d個結(jié)點: (權(quán)值:%d,父結(jié)點位置:%d,左兒子位置:%d,右兒子位置:%d)\n",i,huftree[i].weight,huftree[i].parent,huftree[i].lchild,huftree[i].rchild);<

86、;/p><p><b>  }</b></p><p>  printf("\n\n O(∩_∩)O~GOOD!赫夫曼樹構(gòu)建完畢!\n");</p><p><b>  }</b></p><p><b>  }</b></p>

87、<p>  printf("\n\n O(∩_∩)O~GOOD!赫夫曼樹構(gòu)建完畢!\n");</p><p><b>  }</b></p><p><b>  }</b></p><p>  8、case3.h(赫夫曼樹在電報通信中的應(yīng)用)</p>&

88、lt;p>  void case3()</p><p><b>  {</b></p><p>  system("cls");</p><p>  Htnode huftree[34];/*赫夫曼樹的數(shù)組*/</p><p>  CodeType cd[17];/*葉的編碼數(shù)組*/</p

89、><p>  int n,i,wpl=0, sum=0,m;/*節(jié)點權(quán)值的臨時存放及節(jié)點的個數(shù)*/ </p><p><b>  int temp;</b></p><p><b>  char j;</b></p><p>  printf(" 《歡迎您使用赫夫

90、曼樹的通信編碼功能!O(∩_∩)O~》\n\n\n");</p><p>  printf("開始執(zhí)行!請按回車!\n");</p><p>  fflush(stdin);</p><p>  getchar();</p><p><b>  while (1)</b></p>

91、<p><b>  {</b></p><p>  printf("輸入電報撥號中的數(shù)字進(jìn)制數(shù)(大于1小于17): ");/*輸入帶權(quán)節(jié)點的個數(shù)*/</p><p>  scanf("%d",&n);</p><p>  if(n < 17)</p><p

92、><b>  {</b></p><p>  printf("按提示順序分別輸入各個數(shù)字在通信中使用的頻率(百分比): \n");/*輸入帶權(quán)值的數(shù)*/</p><p>  for(i =0; i < n; i++)</p><p><b>  {</b></p><p

93、><b>  if(i>9)</b></p><p>  9、case4.h(退出菜單界面)</p><p>  void case4()</p><p><b>  {</b></p><p>  system("cls");</p><p>

94、;  printf(" O(∩_∩)O~謝謝您的使用!\n");</p><p><b>  }</b></p><p><b>  五、調(diào)試結(jié)果</b></p><p><b>  進(jìn)入菜單界面:</b></p><p&g

95、t;  選擇1,構(gòu)建只含根結(jié)點的帶權(quán)二叉樹:</p><p>  返回菜單后選擇2,輸出對應(yīng)二叉樹的赫夫曼樹:</p><p>  4、返回菜單后選擇3,測試赫夫曼樹在電報通信中的運用:</p><p>  5、返回菜單后選擇4,退出菜單界面:</p><p><b>  六、心得總結(jié)</b></p>&l

96、t;p>  經(jīng)過本次課程設(shè)計的學(xué)習(xí),我對C語言、數(shù)據(jù)結(jié)構(gòu)對程序的編寫有了更深刻的了解,一個完整的,健壯的程序需要有合理的算法和數(shù)據(jù)結(jié)構(gòu)作為基礎(chǔ),算法是程序的靈魂,是程序的主線,是實現(xiàn)問題的方法和基本步驟的描述,而一個好的算法的實現(xiàn)要建立在合理熟練的邏輯結(jié)構(gòu)和存儲結(jié)構(gòu)上 </p><p>  編寫代碼前之前要對所要編譯的程序有個整體的了解,需要用什么樣的邏輯結(jié)構(gòu)和存儲結(jié)構(gòu),用什么樣的算法去實現(xiàn)。要重視對結(jié)構(gòu)體

97、變量的運用,因為無論是線形結(jié)構(gòu)還是鏈?zhǔn)浇Y(jié)構(gòu)都難免用到結(jié)構(gòu)體變量,結(jié)構(gòu)體中要包含所要描述問題的各個數(shù)據(jù)域和指針域的指向;程序設(shè)計中最重要的也是最容易出錯的地方是指針,因此要熟練掌握指針的使用方法,對整個程序中指針的指向,什么時候為空,有確切的了解,否則很容易出錯,但要是能將指針用好的話程序設(shè)計也就簡單了許多;關(guān)于數(shù)組,在調(diào)用函數(shù)實參時也容易出錯,因為在用數(shù)組做實參時傳遞的是數(shù)組指針,而這一點在本次課程設(shè)計中,當(dāng)我用到文件包含的方式,讓主函

98、數(shù)main()調(diào)用子文件中的子函數(shù)是,數(shù)組做參數(shù)傳遞過程中遇到了許多細(xì)節(jié)問題,對編程的進(jìn)度造成了很大的阻礙。 </p><p>  要想編譯出一個好的程序真不是一件簡單的事情,這次的作業(yè)又花了我大量的時間,但是無論是C語言還是數(shù)據(jù)結(jié)構(gòu),在學(xué)習(xí)過程中收獲最大的還是最后的大作業(yè),通過大作業(yè),對一些實際操作中算法的描述,數(shù)據(jù)結(jié)構(gòu)的使用才有了更深一層的了解,同時也積累了一些在解決實際問題中的經(jīng)驗,處理一般的編譯,

99、連接錯誤的方法,并能夠一步一步的進(jìn)行調(diào)試,編程的過程確實很辛苦,但是有了成果之后又覺得很輕松。所以感覺要是投入進(jìn)去的話編程還不是很難的,只要能夠把基礎(chǔ)的知識學(xué)好,多在操作中練習(xí),多積累些解決實際問題的經(jīng)驗,以后再做這方面的工作就簡單多了。</p><p>  課題設(shè)計使得我對這學(xué)期所學(xué)的專業(yè)課有了更為深刻的認(rèn)識,對于我來說這不僅僅是一次課程設(shè)計,更重要的是使我明白了在學(xué)習(xí)的過程中,所有的問題要一個人去面對,有問題

100、要想盡各種辦法解決,克服困難,在解決這些困難的過程中提高了我學(xué)習(xí)的能力、解決問題的能力和實際工作的能力,學(xué)到了許多書本以外的認(rèn)識。通過這次課程設(shè)計我覺得我學(xué)習(xí)《數(shù)據(jù)結(jié)構(gòu)》的方法存在一定的弊端,《數(shù)據(jù)結(jié)構(gòu)》的效果直接影響到我對其它專業(yè)課的學(xué)習(xí)和今后業(yè)務(wù)的成長。我覺得我對于《數(shù)據(jù)結(jié)構(gòu)》的學(xué)習(xí)不僅包括理論部分的學(xué)習(xí),還要讓我勤動手,多實踐。最后我要衷心的感謝所有給予我?guī)椭椭笇?dǎo)的莫老師,我的同學(xué):雷艷雄、黎盛才、劉宇等人,沒有他們的幫助我的課

101、程設(shè)計也不會完成得這么順利!</p><p>  最后,通過這次課程設(shè)計使我懂得了理論與實際相結(jié)合是很重要的,只有理論知識是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識與實踐相結(jié)合起來,從理論中得出結(jié)論,才能真正學(xué)以致用,從而提高自己的實際動手能力和獨立思考的能力。而且,編程非常考驗人的耐心和信心,這也在性格方面給了我很多磨練。通過這次課程設(shè)計之后,我把前面所學(xué)過的知識又重新溫故了一遍,可以說是收獲不少。</p>

102、<p><b>  七、參考資料</b></p><p>  譚浩強 《C程序設(shè)計》 清華大學(xué)出版社</p><p>  譚浩強 《C++程序設(shè)計》 清華大學(xué)出版社</p><p>  嚴(yán)蔚敏、吳偉民 《數(shù)據(jù)結(jié)構(gòu)》

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論