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

下載本文檔

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

文檔簡介

1、<p>  《數(shù) 據(jù) 結 構》</p><p><b>  課程設計說明書</b></p><p><b>  課程設計任務書</b></p><p><b>  目 錄</b></p><p>  目 錄III</p><p&

2、gt;  第一章 需求分析4</p><p><b>  1.1引言4</b></p><p>  1.2任務概述4</p><p>  1.3數(shù)據(jù)描述4</p><p>  1.4功能需求5</p><p>  1.5性能需求5</p><p> 

3、 1.6運行需求5</p><p>  第二章概要設計6</p><p>  2.1總體設計6</p><p> ?。ㄒ唬?設計目的:6</p><p>  (二) 函數(shù)劃分7</p><p>  2.2數(shù)據(jù)類型設計(或數(shù)據(jù)結構設計)7</p><p>  2.3接口設計

4、7</p><p>  2.4運行界面設計8</p><p>  第三章詳細設計9</p><p>  3.1輸入、創(chuàng)建模塊設計9</p><p>  3.2編碼模塊設計10</p><p>  3.3譯碼模塊設計11</p><p>  3.4主函數(shù)模塊設計13<

5、/p><p>  第四章測試分析15</p><p>  4.1測試程序執(zhí)行情況15</p><p>  4.2出現(xiàn)的問題和解決的方法17</p><p>  第五章課程設計總結18</p><p>  附錄:程序代碼19</p><p><b>  參考文獻26<

6、;/b></p><p><b>  第一章 需求分析</b></p><p><b>  引言</b></p><p>  目前,進行快速遠距離通信的主要手段是電報,即將需傳送的文字轉(zhuǎn)化成由二級制的字符組成的字符串。</p><p>  利用哈夫曼樹求得的用于通信的二進制編碼稱為哈夫曼編碼

7、。樹中從根到每個葉子都有一條路徑,對路徑上的各分支約定:指向左子樹的分支表示“0”碼,指向右子樹的分支表示“1”碼,取每條路徑上的“0”或“1”的序列作為和各個對應的字符的編碼,這就是哈夫曼編碼。通常我們把數(shù)據(jù)壓縮的過程稱為編碼,解壓縮的過程稱為解碼。電報通信是傳遞文字的二進制碼形式的字符串。但在信息傳遞時,總希望總長度盡可能最短,即采用最短碼。因此,哈夫曼樹在通信、編碼和數(shù)據(jù)壓縮等技術領域有著廣泛的應用。</p><

8、;p>  此設計說明書是對編碼/譯碼系統(tǒng)開發(fā)的一個初步的分析說明性文檔,旨在通過該文檔清晰的闡述系統(tǒng)的實際功能,方便系統(tǒng)開發(fā)人員對系統(tǒng)的理解以及與用戶的溝通。文檔相關說明部分在目錄部分已全部涵蓋,閱讀此文檔的相關人員可以通過目錄索引找到相應部分予以閱讀。</p><p><b>  任務概述</b></p><p>  Huffman編碼和譯碼</p>

9、;<p>  根據(jù)給定的字符集和各字符的頻率值,求出其中給定字符Huffman編碼,并針對一段文本(定義在該字符集上)進行編碼和譯碼,實現(xiàn)一個Huffman編碼/譯碼系統(tǒng)。</p><p><b>  數(shù)據(jù)描述</b></p><p>  該哈夫曼編碼/譯碼系統(tǒng)程序中的數(shù)據(jù)主要有:哈夫曼樹、哈夫曼編碼,哈夫曼譯碼等。</p><p&g

10、t;<b>  功能需求</b></p><p>  輸入模塊:輸入各個元素,建立哈夫曼樹;</p><p>  編碼模塊:將輸入的各個元素建立哈夫曼樹,進行編碼;</p><p>  譯碼模塊:將電文以0或1輸入后,根據(jù)之前的哈夫曼樹進行譯碼;</p><p>  輸出模塊:建立好的哈夫曼樹、編碼、譯碼進行輸出。<

11、;/p><p><b>  性能需求</b></p><p>  要求該編碼/譯碼系統(tǒng)具有一定的可擴展性以便適應發(fā)展,且便于維護;</p><p>  要求該編碼/譯碼系統(tǒng)便于使用,使用步驟簡易明了。</p><p><b>  運行需求</b></p><p>  基于wind

12、ows平臺下的窗口圖形界面軟件,運行主界面為windows的經(jīng)典運行界面,采用多文檔界面,從而使程序更加美觀,整齊有序,簡易操作。</p><p>  軟件運行基于windows平臺上的xp,Vista,win7等</p><p><b>  概要設計</b></p><p><b>  總體設計</b></p>

13、;<p><b>  設計目的:</b></p><p>  掌握數(shù)據(jù)結構與算法的設計方法,具備初步的獨立分析和設計能力;</p><p>  初步掌握軟件開發(fā)過程的問題分析、系統(tǒng)設計、程序編碼、測試等基本方法和技能;</p><p>  提高綜合運用所學的理論知識和方法獨立分析和解決問題的能力;</p><p

14、>  訓練用系統(tǒng)的觀點和軟件開發(fā)一般規(guī)范進行軟件開發(fā),培養(yǎng)軟件工作者所應具備的科學的工作方法和作風。</p><p>  圖2.1:程序主體設計圖</p><p><b>  函數(shù)劃分</b></p><p>  該程序有一個主函數(shù)和多個子函數(shù),主函數(shù)完成對子函數(shù)的調(diào)用,各子函數(shù)實現(xiàn)相應的功能。</p><p>&

15、lt;b>  結點的開辟。</b></p><p>  實現(xiàn)對輸入字符串中出現(xiàn)的不同字符及其出現(xiàn)字數(shù)的信息記錄。</p><p>  用葉子結點構造赫夫曼樹。</p><p>  獲得構造的赫夫曼樹中所有葉子結點的元素及其赫夫曼編碼。</p><p>  輸出各葉子結點元素及其對應的赫夫曼編碼。</p><

16、;p>  輸出輸入的字符串的赫夫曼編碼。</p><p><b>  調(diào)用各子函數(shù)</b></p><p>  數(shù)據(jù)類型設計(或數(shù)據(jù)結構設計)</p><p>  表2.1:數(shù)據(jù)類型設計</p><p><b>  接口設計</b></p><p><b> 

17、 表2.1:函數(shù)列表</b></p><p><b>  運行界面設計</b></p><p>  圖2.1:運行界面設計</p><p><b>  詳細設計</b></p><p><b>  輸入、創(chuàng)建模塊設計</b></p><p>

18、  輸入、創(chuàng)建哈夫曼樹:</p><p>  int HuffmanCreate(HuffNode*ht)</p><p><b>  {</b></p><p>  int i,k,n,m1,m2,p1,p2;</p><p>  printf("請輸入元素個數(shù)\n");</p>&l

19、t;p>  scanf("%d",&n);</p><p>  for(i=1;i<=n;i++) //輸入結點值和信息</p><p><b>  {</b></p><p>  getchar();//接收回車</p><p>  

20、printf("第%d個元素的:\n結點值:",i);</p><p>  scanf("%c",&ht[i].data);</p><p>  printf("權值:");</p><p>  scanf("%d",&ht[i].weight);</p>

21、<p><b>  }</b></p><p>  for(i=1;i<=2*n-1;i++) //對數(shù)組初始化</p><p>  ht[i].parent=ht[i].left=ht[i].right=0;</p><p>  for(i=n+1;i<=2*n-1

22、;i++)</p><p><b>  {</b></p><p>  m1=m2=32767; //初始化,令m1,m2為整數(shù)最大值</p><p><b>  p1=p2=1;</b></p><p>  for(k=1;k<=i-1;k++)

23、 //從數(shù)組中找</p><p>  if(ht[k].parent==0) //parent為零切權值最小的兩個結點</p><p>  if(ht[k].weight<m1)</p><p><b>  {</b></p><p>  m2=m1

24、; //令m1為最小權值</p><p>  p2=p1; //p1 為最小權值的位置</p><p>  m1=ht[k].weight; //m1存放最小權值</p><p><b>  p1=k;</b></p><p><b>  }<

25、;/b></p><p>  else if(ht[k].weight<m2)</p><p><b>  {</b></p><p>  m2=ht[k].weight; //m2 為次小權值</p><p>  p2=k; //p2為次小權值所在位置

26、</p><p><b>  }</b></p><p>  ht[p1].parent=i; //i分別付給下標為p1,p2的數(shù)組中</p><p>  ht[p2].parent=i;</p><p>  ht[i].weight=m1+m2; //新節(jié)點權值為最小權值和次小權值之和</p>

27、<p>  ht[i].left=p1; //p1為新節(jié)點的左孩子</p><p>  ht[i].right=p2; //p2為新節(jié)點的右孩子</p><p><b>  }</b></p><p>  printf("哈夫曼樹已成功建立!\n");</p><

28、;p>  return n; //返回結點數(shù)</p><p><b>  }</b></p><p><b>  編碼模塊設計</b></p><p>  根據(jù)創(chuàng)建好的哈夫曼樹,進行編碼:</p><p>  void Encoding(HuffNode

29、 ht[],HuffCode hcd[],int n)</p><p><b>  {</b></p><p>  HuffCode d;</p><p>  int i,k,f,c;</p><p>  for(i=1;i<=n;i++)//對所有節(jié)點循環(huán)</p><p><b>

30、;  {</b></p><p>  d.start=n+1; //起始地點</p><p>  c=i; //從葉結點開始向上</p><p>  f=ht[i].parent;</p><p>  while(f!=0) //到樹根結束

31、</p><p><b>  {</b></p><p>  if(ht[f].left==c)</p><p>  d.cd[--d.start]='0'; //規(guī)定左數(shù)代碼為零</p><p><b>  else</b></p><p

32、>  d.cd[--d.start]='1'; //規(guī)定右樹代碼為一</p><p>  c=f;//c為孩子位置</p><p>  f=ht[f].parent; //f指雙親位置</p><p><b>  }</b></p><p&g

33、t;<b>  hcd[i]=d;</b></p><p><b>  }</b></p><p>  printf("輸出哈夫曼編碼:\n");</p><p>  for(i=1;i<=n;i++)</p><p><b>  {</b></

34、p><p>  printf("%c:",ht[i].data); </p><p><b>  //先輸出結點</b></p><p>  for(k=hcd[i].start;k<=n;k++) //在輸出對應編碼</p><p>  printf("

35、%c",hcd[i].cd[k]);</p><p>  printf("\n");</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  譯碼模塊設計</b></p><p

36、>  根據(jù)已有的哈夫曼樹和提供的電文,進行譯碼:</p><p>  void Decoding(HuffNode ht[],HuffCode hcd[],int n)</p><p><b>  {</b></p><p>  int f,m,k;</p><p>  DataType c,ch[200];

37、 //c接收文件,ch存儲</p><p>  printf("請輸入電文(0 or 1),以#結束\n");</p><p>  c=getchar();</p><p><b>  k=1;</b></p><p>  while(c!='#')

38、 //單字符循環(huán)輸入,以#結束</p><p><b>  {</b></p><p>  ch[k]=c; //單字符一次存入ch字串中</p><p>  c=getchar();</p><p>  k=k+1;

39、 //ch 下地址后移</p><p><b>  }</b></p><p>  m=k; //標記數(shù)組存儲末位位置</p><p><b>  f=2*n-1;</b></p><p>  k=1;//k

40、 記錄電文字符個數(shù)</p><p>  printf("輸出哈夫曼譯碼:\n");</p><p>  while(k<m) //k循環(huán)到數(shù)組末尾結束</p><p><b>  {</b></p><p>  whi

41、le(ht[f].left!=0) //直到左孩子結點為零結束</p><p><b>  {</b></p><p>  if(ch[k]=='0') //若接收字符為0,則存為左孩子</p><p>  f=ht[f].left;</p&g

42、t;<p>  if(ch[k]=='1') //若接收字符為1,則存為右孩子</p><p>  f=ht[f].right;</p><p>  k++; //ch數(shù)組下標后移</p><p><b>  }</b></p>&l

43、t;p>  printf("%c",ht[f].data);</p><p>  f=2*n-1; //每次都從根節(jié)點開始查找</p><p><b>  }</b></p><p>  printf("\n");</p><p&g

44、t;<b>  }</b></p><p><b>  主函數(shù)模塊設計</b></p><p><b>  主函數(shù)的設計:</b></p><p>  int main(int argc,char*argv[])</p><p><b>  {</b>&l

45、t;/p><p>  int n,select,flag=FALSE; //flag為零標記第一次選擇功能</p><p>  HuffNode ht[2*MAXNUM]; //定義存放哈夫曼的數(shù)組</p><p>  HuffCode hcd[MAXNUM]; //定義存放編碼的數(shù)

46、組</p><p>  while(TRUE)</p><p><b>  {</b></p><p>  printf("\n——————歡迎進入赫夫曼編碼譯碼——————\n\n");</p><p>  printf("1.建立哈夫曼樹 \n");</p>

47、<p>  printf("2.編碼 \n");</p><p>  printf("3.譯碼 \n");</p><p>  printf("4.退出程序 \n\n");</p><p>  printf("請選擇您要實現(xiàn)的功能:(請輸入1-4)

48、\n");</p><p>  scanf("%d",&select);</p><p>  if(select>=1&&select<=4){</p><p>  if(select!=1&&select!=4&&flag==0)</p><p&g

49、t;<b>  {</b></p><p>  printf("請先建立哈夫曼樹在選擇其他功能!\n");</p><p><b>  continue;</b></p><p><b>  }</b></p><p>  flag=TRUE;</p&

50、gt;<p>  switch(select) </p><p><b>  {</b></p><p><b>  case 1:</b></p><p>  n=HuffmanCreate(ht);</p><p><b>  break;</b>&

51、lt;/p><p><b>  case 2:</b></p><p>  Encoding(ht,hcd,n);</p><p><b>  break;</b></p><p><b>  case 3:</b></p><p>  Decoding(h

52、t,hcd,n);</p><p><b>  break;</b></p><p><b>  case 4:</b></p><p><b>  exit(0);</b></p><p><b>  }</b></p><p>

53、<b>  }else{</b></p><p>  printf("請重新輸入!\n");</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  return 0;</b><

54、/p><p><b>  }</b></p><p><b>  測試分析</b></p><p><b>  測試程序執(zhí)行情況</b></p><p>  圖4.1:選擇建立哈夫曼樹</p><p>  圖4.2:輸入需建立哈夫曼樹的元素個數(shù)</p&

55、gt;<p>  圖4.3:成功建立哈夫曼樹</p><p>  圖4.4:根據(jù)建立好的哈夫曼樹,進行編碼</p><p>  圖4.5:根據(jù)建立好的哈夫曼樹以及輸入的電文,進行譯碼</p><p>  出現(xiàn)的問題和解決的方法</p><p>  程序的語句結束后,忘記打分號:程序運行出現(xiàn)錯誤后,加上分號;</p>

56、<p>  輸入電文時,誤將0和1輸成其他數(shù)據(jù),結果程序出現(xiàn)將其他數(shù)據(jù)隨機當做0或1。</p><p><b>  課程設計總結</b></p><p>  在課程設計過程中,我們每個人選擇一個課題,認真研究,根據(jù)課堂教授內(nèi)容,借助書本,自己動手實踐。這樣不但有助于我們消化課堂所講解的內(nèi)容,還可以增強我們的獨立思考能力和動手能力;通過編寫實驗代碼和調(diào)試運行

57、,我們可以逐步積累調(diào)試C程序的經(jīng)驗并逐漸培養(yǎng)我們的編程能力、用計算機解決實際問題的能力。</p><p>  在課程設計過程中,我們不但有自己的獨立思考,還借助各種參考文獻來幫助我們完成系統(tǒng)。更為重要的是,我們同學之間加強了交流,在對問題的認識方面可以交換不同的意見。</p><p>  在寫代碼前,首先,對問題進行了分析,明確了目標,列出了大的框架,然后逐漸細化,劃分出不同的功能模塊,由

58、具體的子函數(shù)去實現(xiàn),先在紙上編寫代碼,寫好后進行了反復的邏輯推理,發(fā)現(xiàn)并解決邏輯問題,然后,上機調(diào)試,方法是:一個一個功能模塊分開進行調(diào)試,主要看調(diào)試的模塊能否達到預期的結果,這樣可以縮小排錯的范圍,便以糾錯和提高編程的效率,當每個功能模塊都調(diào)試好后,就把各個部分組合起來,再進行調(diào)試,主要檢查各函數(shù)接口是否正確,當達到預期的結果,調(diào)試結束,編程部分完成,然后按實驗要求完成實驗報告。</p><p>  數(shù)據(jù)結構課

59、程具有比較強的理論性,同時也具有較強的可應用性和實踐性。課程設計是一個重要的教學環(huán)節(jié)。我們在一般情況下都能夠重視實驗環(huán)節(jié),但是容易忽略實驗的總結,忽略實驗報告的撰寫。通過這次實驗讓我們明白:作為一名大學生必須嚴格訓練分析總結能力、書面表達能力。需要逐步培養(yǎng)書寫科學實驗報告以及科技論文的能力。只有這樣,我們的綜合素質(zhì)才會有好的提高。</p><p><b>  附錄:程序代碼</b></

60、p><p>  #include<stdio.h></p><p>  #include<malloc.h></p><p>  #include<limits.h></p><p>  #include<string.h></p><p>  #include<std

61、lib.h></p><p>  #include<io.h></p><p>  #include<math.h></p><p>  #include<process.h></p><p>  #define TRUE 1</p><p>  #define FALSE 0

62、</p><p>  #define OK 1</p><p>  #define ERROR -1</p><p>  #define INFEASIBLE -1</p><p>  typedef char DataType;</p><p>  #define MAXNUM 50</p><p

63、>  typedef struct //huffman 樹結點的結構定義</p><p><b>  {</b></p><p>  DataType data; //數(shù)據(jù)用字符表示</p><p>  int weight; //權值</p&g

64、t;<p>  int parent; //雙親</p><p>  int left; //左孩子</p><p>  int right; //右孩子</p><p>  }HuffNode;</p><p>  typedef stru

65、ct//huffman 樹結點的存儲定義</p><p><b>  {</b></p><p>  DataType cd[MAXNUM]; //存放編碼位串</p><p>  int start; //編碼起始位置</p&

66、gt;<p>  }HuffCode;</p><p>  int HuffmanCreate(HuffNode*ht)</p><p><b>  {</b></p><p>  int i,k,n,m1,m2,p1,p2;</p><p>  printf("請輸入元素個數(shù)\n");

67、</p><p>  scanf("%d",&n);</p><p>  for(i=1;i<=n;i++) //輸入結點值和信息</p><p><b>  {</b></p><p>  getchar();

68、 //接收回車</p><p>  printf("第%d個元素的:\n結點值:",i);</p><p>  scanf("%c",&ht[i].data);</p><p>  printf("權值:");</p><p>  scanf("%d"

69、,&ht[i].weight);</p><p><b>  }</b></p><p>  for(i=1;i<=2*n-1;i++) //對數(shù)組初始化</p><p>  ht[i].parent=ht[i].left=ht[i].right=0;</p><p&g

70、t;  for(i=n+1;i<=2*n-1;i++)</p><p><b>  {</b></p><p>  m1=m2=32767; //初始化,令m1,m2為整數(shù)最大值</p><p><b>  p1=p2=1;</b></p><p>  

71、for(k=1;k<=i-1;k++) //從數(shù)組中找</p><p>  if(ht[k].parent==0) //parent為零切權值最小的兩個結點</p><p>  if(ht[k].weight<m1)</p><p><b>  {</b></p>&l

72、t;p>  m2=m1; //令m1為最小權值</p><p>  p2=p1; //p1 為最小權值的位置</p><p>  m1=ht[k].weight; //m1存放最小權值</p><p><b>  p1=k;</b></p><p

73、><b>  }</b></p><p>  else if(ht[k].weight<m2)</p><p><b>  {</b></p><p>  m2=ht[k].weight; //m2 為次小權值</p><p>  p2=k;

74、 //p2為次小權值所在位置</p><p><b>  }</b></p><p>  ht[p1].parent=i; //i分別付給下標為p1,p2的數(shù)組中</p><p>  ht[p2].parent=i;</p><p>  ht[i].weight=m1+m2;

75、 //新節(jié)點權值為最小權值和次小權值之和</p><p>  ht[i].left=p1;//p1為新節(jié)點的左孩子</p><p>  ht[i].right=p2;//p2為新節(jié)點的右孩子</p><p><b>  }</b></p><p>  printf("哈夫曼樹已成功建立!\n&quo

76、t;);</p><p>  return n; //返回結點數(shù)</p><p><b>  }</b></p><p><b>  //編碼</b></p><p>  void Encoding(HuffNode ht[],HuffCode hcd[],int n)

77、</p><p><b>  {</b></p><p>  HuffCode d;</p><p>  int i,k,f,c;</p><p>  for(i=1;i<=n;i++) //對所有節(jié)點循環(huán)</p><p><b>  {</b>

78、</p><p>  d.start=n+1; //起始地點</p><p>  c=i; //從葉結點開始向上</p><p>  f=ht[i].parent;</p><p>  while(f!=0) //到樹根結束&

79、lt;/p><p><b>  {</b></p><p>  if(ht[f].left==c)</p><p>  d.cd[--d.start]='0'; //規(guī)定左數(shù)代碼為零</p><p><b>  else</b></p><

80、;p>  d.cd[--d.start]='1'; //規(guī)定右樹代碼為一</p><p>  c=f; //c為孩子位置</p><p>  f=ht[f].parent; //f指雙親位置<

81、;/p><p><b>  }</b></p><p><b>  hcd[i]=d;</b></p><p><b>  }</b></p><p>  printf("輸出哈夫曼編碼:\n");</p><p>  for(i=1;i

82、<=n;i++)</p><p><b>  {</b></p><p>  printf("%c:",ht[i].data); //先輸出結點</p><p>  for(k=hcd[i].start;k<=n;k++) //在輸出對應編碼</p><p

83、>  printf("%c",hcd[i].cd[k]);</p><p>  printf("\n");</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  //譯碼</b>

84、</p><p>  void Decoding(HuffNode ht[],HuffCode hcd[],int n)</p><p><b>  {</b></p><p>  int f,m,k;</p><p>  DataType c,ch[200]; //c接收文件,ch

85、存儲</p><p>  printf("請輸入電文(0 or 1),以#結束\n");</p><p>  c=getchar();</p><p><b>  k=1;</b></p><p>  while(c!='#') //單字符循

86、環(huán)輸入,以#結束</p><p><b>  {</b></p><p>  ch[k]=c; //單字符一次存入ch字串中</p><p>  c=getchar();</p><p>  k=k+1; //ch下地址后移</p>

87、<p><b>  }</b></p><p>  m=k; //標記數(shù)組存儲末位位置</p><p><b>  f=2*n-1;</b></p><p>  k=1; //k記錄電文字符個數(shù)</p><p>  

88、printf("輸出哈夫曼譯碼:\n");</p><p>  while(k<m) //k循環(huán)到數(shù)組末尾結束</p><p><b>  {</b></p><p>  while(ht[f].left!=0) //直到左孩子結點為零結束</p&

89、gt;<p><b>  {</b></p><p>  if(ch[k]=='0') //若接收字符為0,則存為左孩子</p><p>  f=ht[f].left;</p><p>  if(ch[k]=='1') //若接收字符為1,

90、則存為右孩子</p><p>  f=ht[f].right;</p><p>  k++; //ch數(shù)組下標后移</p><p><b>  }</b></p><p>  printf("%c",ht[f].data);</p>

91、<p>  f=2*n-1; //每次都從根節(jié)點開始查找</p><p><b>  }</b></p><p>  printf("\n");</p><p><b>  }</b></p><p>  int

92、 main(int argc,char*argv[])</p><p><b>  {</b></p><p>  int n,select,flag=FALSE; //flag為零標記第一次選擇功能</p><p>  HuffNode ht[2*MAXNUM]; //定義存放哈夫曼的數(shù)組&

93、lt;/p><p>  HuffCode hcd[MAXNUM]; //定義存放編碼的數(shù)組</p><p>  while(TRUE)</p><p><b>  {</b></p><p>  printf("\n——————歡迎進入赫夫曼編碼譯碼——————\n\n");

94、</p><p>  printf("1.建立哈夫曼樹 \n");</p><p>  printf("2.編碼 \n");</p><p>  printf("3.譯碼 \n");</p><p>  printf("4.退出程序

95、 \n\n");</p><p>  printf("請選擇您要實現(xiàn)的功能:(請輸入1-4)\n");</p><p>  scanf("%d",&select);</p><p>  if(select>=1&&select<=4){</p><p> 

96、 if(select!=1&&select!=4&&flag==0)</p><p><b>  {</b></p><p>  printf("請先建立哈夫曼樹在選擇其他功能!\n");</p><p><b>  continue;</b></p>&l

97、t;p><b>  }</b></p><p>  flag=TRUE;</p><p>  switch(select)</p><p><b>  {</b></p><p><b>  case 1:</b></p><p>  n=Huff

98、manCreate(ht);</p><p><b>  break;</b></p><p><b>  case 2:</b></p><p>  Encoding(ht,hcd,n);</p><p><b>  break;</b></p><p&g

99、t;<b>  case 3:</b></p><p>  Decoding(ht,hcd,n);</p><p><b>  break;</b></p><p><b>  case 4:</b></p><p><b>  exit(0);</b>&

100、lt;/p><p><b>  }</b></p><p><b>  }else{</b></p><p>  printf("請重新輸入!\n");</p><p><b>  }</b></p><p><b>  }&l

101、t;/b></p><p><b>  return 0;</b></p><p><b>  }</b></p><p><b>  參考文獻</b></p><p>  《數(shù)據(jù)結構 (C語言版)》嚴蔚敏、吳偉民 主編 清華大學出版社 </p><

溫馨提示

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

評論

0/150

提交評論