版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 數(shù)據(jù)結(jié)構(gòu)</b></p><p><b> 課程設計報告</b></p><p><b> 專業(yè)班級: </b></p><p><b> 姓名: </b></p><p><b> 學號: </b&g
2、t;</p><p><b> 指導老師: </b></p><p> 日期:2010年7月</p><p><b> 一、實驗內(nèi)容 </b></p><p><b> 哈夫曼編/譯碼器</b></p><p> 利用哈夫曼編碼進行信息通信可以
3、大大提高信道利用率,縮短信息傳輸時間,降低傳輸成本。但是,這要求在發(fā)送端通過一個編碼系統(tǒng)對待傳數(shù)據(jù)預先編碼,在接收端將傳來的數(shù)據(jù)進行譯碼(復原)。對于雙工信道(即可以雙向傳輸信息的信道),每端都需要一個完整的編/譯碼系統(tǒng)。試為這樣的信息收發(fā)站寫一個哈夫曼編/譯碼系統(tǒng)。</p><p> 一個完整的系統(tǒng)應具有以下功能:</p><p> (1)I:初始化(Initialization)。
4、從終端讀入字符集大小n,以及n個字符和n個權(quán)值,建立哈夫曼樹,并將它存于文件hfmTree中。</p><p> (2)E:編碼(Encoding)。利用已建好的哈夫曼樹(如不在內(nèi)存,則從文件htmTree中讀入),對文件ToBeTran中的正文進行編碼,然后將結(jié)果存入文件CodeFile中。</p><p> (3)D:譯碼(Decoding)。利用已建好的哈夫曼樹將文件CodeFi
5、le中的代碼進行譯碼,結(jié)果存入文件TextFile中。</p><p> (4)P:印代碼文件(Print)。將文件CodeFile以緊湊格式顯示在終端上,每行50個代碼。同時將此字符形式的編碼寫入文件CodePrint中。</p><p> ?。?)T:印哈夫曼樹(Tree Printing)。將已在內(nèi)存中的哈夫曼樹以直觀的方式(樹或凹入表形式)顯示在終端上,同時將此字符形式的哈夫曼樹
6、寫入文件TreePrint中。</p><p><b> 二、實驗目的 </b></p><p> 學習數(shù)據(jù)結(jié)構(gòu)與算法的最終目的是解決實際的應用問題,特別是非數(shù)值計算類型的應用問題。本課程設計要求同學獨立完成一個較為完整的應用需求分析,在完成設計和編程大型作業(yè)的過程中,深化對數(shù)據(jù)結(jié)構(gòu)與算法課程中基本概念、理論和方法的理解;訓練綜合運用所學知識處理實際問題的能力,使
7、同學的程序設計與調(diào)試水平有一個明顯的提高。</p><p><b> 三、實驗思想及分析</b></p><p> 一個完整的系統(tǒng)應具有以下功能:</p><p> I:初始化(Initialization)。從終端讀入字符集大小n,以及n個字符和n個權(quán)值,建立赫夫曼樹,并將它存于文件hfmTree中。</p><p&
8、gt;<b> 對赫夫曼樹初始化。</b></p><p> 根據(jù)書本算法6.12,對樹進行從葉子到根的逆向求每個字符的赫夫曼編碼。</p><p> 更新赫夫曼樹,并存到hfmTree.txt中。</p><p> 算法6.12流程圖如下:</p><p><b> N</b></
9、p><p><b> Y</b></p><p> 圖1 算法6.12流程圖</p><p> E:編碼(Encoding)。利用已建好的哈夫曼樹,對文件ToBeTran中的正文進行編碼,然后將結(jié)果存入文件CodeFile中。</p><p> 將終端輸入須要編碼的語句逐字在已建好的赫夫曼樹中查找。</p>
10、;<p> 當在樹中找到相匹配字符時,將該字符對應的赫夫曼編碼用strcat()</p><p> 統(tǒng)一存到code[]數(shù)組。</p><p> ?、圩詈髮ode[]數(shù)組中的編碼在終端輸出并存儲到CodeFile.txt中。</p><p> D:譯碼(Decoding)。利用已建好的哈夫曼樹將文件CodeFile中的代碼進行譯碼,結(jié)果存入文件
11、Textfile中。</p><p> 從CodeFile.txt中獲取須要譯碼的編碼組。</p><p> 將編碼逐一讀入,并在赫夫曼中根據(jù)左‘0’右‘1’去查找字符。</p><p> 將譯好的語句在終端輸出,并存至Textfile.txt中。</p><p> P:打印表(TreePrint)。將已建立好的赫夫曼樹的存儲情況在終
12、端以表格的形式羅列出來,使樹的調(diào)用看起來更直觀。</p><p> T:打印圖(TreePrint)。將已建好的赫夫曼樹以直觀的圖形在終端輸出。</p><p> 根據(jù)樹的先序遍歷算法,依次訪問各個結(jié)點。</p><p> 根據(jù)P打印出來的表,分析其所在的層次。</p><p> 根據(jù)層次的大小,在終端輸出相應長度的長條,來完成凹入表
13、的輸出。</p><p><b> 四、程序代碼:</b></p><p> #include<stdio.h> </p><p> #include<stdlib.h></p><p> #include<string.h></p><p> typ
14、edef struct</p><p><b> { </b></p><p> char elem;</p><p> int weight; </p><p> int parent,lchild,rchild; </p><p> }HTNode,*HuffmanTree;
15、 //動態(tài)分配數(shù)組存儲赫夫曼樹</p><p> typedef char **HuffmanCode; //動態(tài)分配數(shù)組存儲赫夫曼樹編碼表</p><p> void Initialization();</p><p> void Encoding();</p>
16、;<p> void Decoding();</p><p> void HuffmanCoding(int); </p><p> void Select(int,int *,int *); </p><p> void PrintHufmFigue();</p><p> void putout(int,int);
17、</p><p> void Turn(int,void(* Visit)(int,int));</p><p> void TreePrint();</p><p> //-------------------全局函數(shù)----------------------- </p><p> int ipt=1,n,q,p=0,code_n
18、um=0,TempLen=0,diamonds,lay;</p><p> int w1=100000,w2=100000,w3=100000;</p><p> HuffmanCode HC=NULL; </p><p> HuffmanTree HT;</p><p> int main()</p><p>
19、;<b> {</b></p><p><b> char key;</b></p><p> system("color FC");</p><p> printf(" ╔━━━━━━━━━━━━━━━━━━━━━╗\n");</p><p
20、> printf(" ┃ 赫夫曼編/譯碼器 ┃\n");</p><p> printf(" ┃ ┃\n");</p><p> printf(" ┃
21、 08信息 <2> 趙思宇 ┃\n");</p><p> printf(" ╚━━━━━━━━━━━━━━━━━━━━━╝\n");</p><p><b> do{</b></p><p> printf("\n\n\n"
22、);</p><p> printf(" ╔━━━━━━━━━━━━━━━━━━━━━╗\n");</p><p> printf(" ┃ 操作菜單 ┃\n");</p><p> printf(" ┃
23、 ┃\n");</p><p> printf(" ┃ I:初始化 (Initialization ) ┃\n");</p><p> printf(" ┃ E:編 碼 (Encodi
24、ng ) ┃\n");</p><p> printf(" ┃ D:譯 碼 (Decoding ) ┃\n");</p><p> printf(" ┃ P:打印表 (PrintHufmFigue ) ┃\n"
25、;);</p><p> printf(" ┃ T:打印圖 (TreePrint ) ┃\n");</p><p> printf(" ┃ Q:退 出 (Initialization ) ┃\n");</p><p&
26、gt; printf(" ┃ ┃\n");</p><p> printf(" ╚━━━━━━━━━━━━━━━━━━━━━╝\n");</p><p> printf("\n\n");</p><
27、;p> printf("Please Enter a key of the operation:");</p><p> scanf("%c",&key);</p><p> getchar();</p><p> switch(key)</p><p><b> {&
28、lt;/b></p><p><b> case 'i':</b></p><p><b> case 'I':</b></p><p> Initialization();</p><p><b> break;</b></
29、p><p><b> case 'e':</b></p><p><b> case 'E':</b></p><p> Encoding();</p><p><b> break;</b></p><p><
30、b> case 'd':</b></p><p><b> case 'D':</b></p><p> Decoding();</p><p><b> break;</b></p><p><b> case 'p
31、39;:</b></p><p><b> case 'P':</b></p><p> PrintHufmFigue();</p><p><b> break;</b></p><p><b> case 't':</b>
32、</p><p><b> case 'T':</b></p><p> TreePrint();</p><p><b> }</b></p><p> }while(key!='q'&&key!='Q');</p>
33、;<p><b> return 1;</b></p><p><b> }</b></p><p> /* 函數(shù)功能:建立赫夫曼樹并對其進行初始化。</p><p> 函數(shù)參數(shù):FILE *FhfmTreeP,將赫夫曼樹的相關(guān)信息保存于此hfmTree.TXT中。</p><p&
34、gt; 函數(shù)實現(xiàn):實現(xiàn)了字符集和頻度的實際統(tǒng)計,并可將信息保存到hfmTree.TXT中。</p><p><b> 函數(shù)返回值:無</b></p><p><b> */</b></p><p> void Initialization()</p><p><b> {<
35、/b></p><p><b> int i,m;</b></p><p> char style[]={' ','\0'};</p><p> printf("Please input the number of Node:" ); </p><p>
36、scanf("%d",&n); </p><p> getchar();</p><p><b> m=2*n-1; </b></p><p> HT=(HuffmanTree)malloc((m+1)*sizeof(HTNode)); //0號單元未用</p><p> fo
37、r(i=1;i<=n;i++)</p><p><b> { </b></p><p> printf("Input characters and weight(just like a 30Enter):"); </p><p> scanf("%c%d",&HT[i].elem,&a
38、mp;HT[i].weight);</p><p> getchar();</p><p> HT[i].parent=HT[i].lchild=HT[i].rchild=0;</p><p><b> } </b></p><p> HuffmanCoding(n);</p><p>
39、 FILE* FhfmTreeP=NULL;</p><p> if(NULL==(FhfmTreeP=fopen("E:\\hfmTree.txt","w")))</p><p> printf("Open hfmTree.txt failed!\n");</p><p><b> els
40、e</b></p><p><b> {</b></p><p> for(i=1;i<=n;i++) </p><p><b> { </b></p><p> fprintf(FhfmTreeP,"%c",HT[i].elem);</p>
41、<p> fputs(HC[i],FhfmTreeP); </p><p> fputs(style,FhfmTreeP); </p><p><b> }</b></p><p><b> }</b></p><p> fclose(FhfmTreeP);</p>
42、;<p> printf("Every charactor has been coded and puted into E:\\hfmTree.txt!\n");</p><p><b> return;</b></p><p><b> }</b></p><p> //---
43、-------------P147 算法6.12-------------------</p><p> void HuffmanCoding(int n)</p><p><b> { </b></p><p> int i,m,s1,s2,start,c,f; //weight
44、存放n個字符的權(quán)值(均</p><p> char *cd; //>0),構(gòu)造赫夫曼樹HT,并求出</p><p> m=2*n-1; //n個字符的赫夫曼編碼HC。</p><p> for(i=n+1
45、;i<=m;++i)</p><p><b> { </b></p><p> HT[i].elem='0'; </p><p> HT[i].weight=HT[i].parent=HT[i].lchild=HT[i].rchild=0; </p><p><b> }</
46、b></p><p> for(i=n+1;i<=m;++i)</p><p> { //建赫夫曼樹</p><p> Select(i-1,&s1,&s2); /*在HT[1...i-1]選擇parent為0</p><p> HT[s1].pare
47、nt=i;HT[s2].parent=i; 且weight最小的兩個結(jié)點,其.</p><p> HT[i].lchild=s1;HT[i].rchild=s2; 序號分別為s1,s2*/</p><p> HT[i].weight=HT[s1].weight+HT[s2].weight; </p><
48、;p><b> } </b></p><p> //-----------------從葉子到根逆向求每個字符的赫夫曼編碼--------------------------</p><p> HC=(HuffmanCode)malloc((n+1)*sizeof(char*)); //分配n個字符編碼的頭指針向量</p>&
49、lt;p> cd=(char *)malloc(n*sizeof(char)); //分配求編碼的工作空間</p><p> cd[n-1]='\0'; //編碼結(jié)束符</p><p> for(i=1;i<=n;++i)</p><p> { //逐個字符求赫夫曼編碼<
50、/p><p> start=n-1; </p><p> for(c=i,f=HT[i].parent;f!=0;c=f,f=HT[f].parent) //從葉子到根逆向求編碼</p><p><b> { </b></p><p> if(HT[f].lchild==c) cd[--start]=
51、9;0'; </p><p> else cd[--start]='1'; </p><p><b> } </b></p><p> HC[i]=(char *)malloc((n-start)*sizeof(char)); //為第i個字符編碼分配空間</p><p>
52、strcpy(HC[i],&cd[start]);//從cd復制編碼(串)到HC</p><p><b> }</b></p><p> free(cd);//釋放工作空間</p><p><b> return;</b></p><p> }//H
53、uffanCoding</p><p> /*函數(shù)功能:選出當前字符集中,兩個最小值s1,s2.</p><p> 函數(shù)參數(shù):*s1,*s2,用于存儲選出的兩個最小值。</p><p><b> 函數(shù)返回值:無</b></p><p><b> */</b></p><p
54、> void Select(int n,int *s1,int *s2) </p><p><b> { </b></p><p><b> int i; </b></p><p> (*s1)=(*s2)=0; </p><p> for(i=1;i<=n;i++)</
55、p><p><b> { </b></p><p> if(HT[i].weight<HT[(*s2)].weight&&HT[i].parent==0&&(*s2)!=0)</p><p><b> { </b></p><p> if(HT[i].wei
56、ght<HT[(*s1)].weight)</p><p><b> { </b></p><p> (*s2)=(*s1); </p><p><b> (*s1)=i; </b></p><p><b> } </b></p><p>
57、; else (*s2)=i; </p><p><b> } </b></p><p> if(((*s1)==0||(*s2)==0)&&HT[i].parent==0)</p><p><b> { </b></p><p> if((*s1)==0) (*s1)=i
58、; </p><p> else if((*s2)==0)</p><p><b> { </b></p><p> if(HT[i].weight<HT[(*s1)].weight)</p><p><b> { </b></p><p> (*s2)=(*
59、s1); </p><p><b> (*s1)=i; </b></p><p><b> } </b></p><p> else (*s2)=i; </p><p><b> } </b></p><p><b> } </
60、b></p><p><b> } </b></p><p> if((*s1)>(*s2))</p><p><b> { </b></p><p><b> i=(*s1); </b></p><p> (*s1)=(*s2);
61、 </p><p><b> (*s2)=i; </b></p><p><b> } </b></p><p><b> return; </b></p><p><b> }</b></p><p> /*函數(shù)功能:將
62、終端輸入的字符串編譯成用0/1表示的編碼,并將相應信息存入TXT文檔。</p><p> 函數(shù)參數(shù):temp[1000],用于臨時存儲終端輸入的字符串。</p><p> Code[1000],用于存儲0/1編碼。</p><p> ToBeTran.txt,用于存儲終端輸入的字符串。</p><p> CodeFile.txt,用于
63、存儲編譯后的0/1編碼。</p><p><b> 函數(shù)返回值:無</b></p><p><b> */</b></p><p> void Encoding()</p><p><b> {</b></p><p> int i,j,all
64、;</p><p> char temp[1000],code[10000];</p><p> printf("Please put in the sentence you want to Encoding:");</p><p> //scanf("%s",temp);</p><p> g
65、etchar();</p><p> gets(temp);</p><p> code[0]='\0';</p><p> FILE* FToBeTranP=NULL;</p><p> if(NULL==(FToBeTranP=fopen("E:\\ToBeTran.txt","w&q
66、uot;)))</p><p> printf("Open ToBeTran.txt failed!\n");</p><p><b> else</b></p><p> fputs(temp,FToBeTranP);</p><p> fclose(FToBeTranP);</p&g
67、t;<p> TempLen=strlen(temp);</p><p> for(i=0;i<TempLen;i++)</p><p><b> {</b></p><p><b> all=0;</b></p><p> for(j=1;j<=n;j++)&l
68、t;/p><p><b> {</b></p><p> if(temp[i]==HT[j].elem)</p><p><b> {</b></p><p> strcat(code,HC[j]);</p><p><b> all=1;</b>
69、</p><p><b> }</b></p><p><b> }</b></p><p><b> if(all=0)</b></p><p> printf("Some charactor in the sentence are not matching
70、!!!");</p><p><b> }</b></p><p> code_num=strlen(code);</p><p> printf("Codes of the sentence are:\n%s\n",code);</p><p> FILE* FCodeFileP=
71、NULL;</p><p> if(NULL==(FCodeFileP=fopen("E:\\CodeFile.txt","w")))</p><p> printf("Open CodeFile.txt failed!\n");</p><p><b> else</b><
72、;/p><p> fputs(code,FCodeFileP);</p><p> fclose(FCodeFileP);</p><p> printf("And have put into E:\\CodeFile.txt!\n");</p><p><b> return;</b></
73、p><p><b> } </b></p><p> //--------------------------Decoding----------------------------</p><p> void Decoding()</p><p><b> {</b></p>&
74、lt;p> int m,i,p=0;</p><p> char q,*Decode,*Sentence;</p><p> FILE* FDecodeP=NULL;</p><p> if(NULL==(FDecodeP=fopen("E:\\CodeFile.txt","r")))</p>&l
75、t;p> printf("Open E:\\CodeFile.txt failed!\n");</p><p><b> else</b></p><p><b> {</b></p><p> FILE *TxtFile=NULL;</p><p> if(NU
76、LL==(TxtFile=fopen("E:\\TxtFile.txt","w")))</p><p> printf("Open E:\\TxtFile.txt failed!\n");</p><p><b> else</b></p><p><b> {<
77、/b></p><p> Sentence=(char*)malloc(TempLen*sizeof(char));</p><p> Decode=(char*)malloc(code_num*sizeof(char));</p><p> fgets(Decode,code_num+1,FDecodeP);</p><p>&
78、lt;b> m=2*n-1;</b></p><p> for(i=0;Decode[i-1]!='\0';i++) </p><p><b> { </b></p><p> q=Decode[i]; </p><p> if(HT[m].lchild==0) </p&
79、gt;<p><b> { </b></p><p> Sentence[p]=HT[m].elem; </p><p><b> p++; </b></p><p><b> m=2*n-1; </b></p><p><b> i--;
80、</b></p><p><b> } </b></p><p> else if(q=='0') m=HT[m].lchild; </p><p> else if(q=='1') m=HT[m].rchild; </p><p><b> } </b
81、></p><p> Sentence[p]='\0';</p><p> fputs(Sentence,TxtFile);</p><p> printf("Codes have been Encoded and get a sentence:\n%s\n",Sentence);</p><p&g
82、t; printf("And have been put into TxtFile.txt!\n");</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> /* 函數(shù)功
83、能:輸出赫夫曼樹中各結(jié)點的數(shù)據(jù)存儲情況。</p><p><b> 函數(shù)參數(shù):無。</b></p><p><b> 函數(shù)返回值:無。</b></p><p><b> */</b></p><p> void PrintHufmFigue()</p>&
84、lt;p><b> {</b></p><p><b> int i,m;</b></p><p> char end[]={'\\','\0'};</p><p> printf("╔━━━┳━━━┳━━━┳━━━┳━━━┳━━┳━━━━━━━╗");&l
85、t;/p><p> printf("┃Number┃Element┃Weight┃Parents┃Lchild┃Rchild┃HuffmanCode ┃");</p><p> printf("┣━━━╋━━━╋━━━╋━━━╋━━━╋━━╋━━━━━━━┫");</p><p> for(i=1;i<=n;i++)&
86、lt;/p><p><b> {</b></p><p> printf("┃%6d┃%8c┃%6d┃%8d┃%8d┃%8d┃%20s┃",i,HT[i].elem,HT[i].weight,HT[i].parent,HT[i].lchild,HT[i].rchild,HC[i]);</p><p> printf(&qu
87、ot;┣━━━━╋━━━╋━━━╋━━━━╋━━━━╋━━━╋━━━━┫");</p><p><b> }</b></p><p><b> m=2*n-1;</b></p><p> for(i=n+1;i<=m-1;i++)</p><p><b> {<
88、;/b></p><p> printf("┃%6d┃%8c┃%6d┃%8d┃%8d┃%8d┃%20s┃",i,HT[i].elem,HT[i].weight,HT[i].parent,HT[i].lchild,HT[i].rchild,end);</p><p> printf("┣━━━╋━━━━╋━━━╋━━━━╋━━━━╋━━━━╋━━━━┫
89、");</p><p><b> }</b></p><p> printf("┃%6d┃%8c┃%6d┃%8d┃%8d┃%8d┃%20s┃",m,HT[m].elem,HT[m].weight,HT[m].parent,HT[m].lchild,HT[m].rchild,end);</p><p> pri
90、ntf("╚━━━┻━━━━┻━━━┻━━━━┻━━━━┻━━━┻━━━━╝");</p><p><b> return;</b></p><p><b> }</b></p><p> /*函數(shù)功能:將赫夫曼樹以凹入表的形式在終端輸出。</p><p><b>
91、; 函數(shù)參數(shù): 無。</b></p><p><b> 函數(shù)返回值:無。</b></p><p><b> */</b></p><p> void TreePrint()</p><p><b> {</b></p><p>
92、int MaxCode,MaxI=1,Floor,numb,i;</p><p> numb=2*n-1;</p><p> MaxCode=strlen(HC[1]);</p><p> for(i=1;i<=n;i++)</p><p><b> {</b></p><p>
93、if(strlen(HC[i])>MaxCode)</p><p><b> {</b></p><p> MaxCode=strlen(HC[i]);</p><p><b> MaxI=i;</b></p><p><b> }</b></p>
94、<p><b> }</b></p><p> Floor=MaxCode+1;</p><p> diamonds=Floor+10;</p><p> lay=diamonds;</p><p> Turn(numb,putout);</p><p><b>
95、return;</b></p><p><b> }</b></p><p> void Turn(int w,void(* Visit)(int,int))</p><p><b> {</b></p><p><b> p++;</b></p>
96、;<p><b> w3=w2;</b></p><p><b> w2=w1;</b></p><p><b> w1=w;</b></p><p> if(w3<w2&&w2<w1)</p><p><b> l
97、ay++;</b></p><p> if(HT[w].weight!=0)</p><p> Visit(w,lay);</p><p> if(HT[w].lchild!=0)</p><p><b> {</b></p><p> lay=diamonds-p;<
98、/p><p> Turn(HT[w].lchild,Visit);</p><p><b> }</b></p><p> if(HT[w].rchild!=0)</p><p><b> {</b></p><p><b> q=--p;</b>
99、</p><p> lay=diamonds-q;</p><p> Turn(HT[w].rchild,Visit);</p><p><b> }</b></p><p><b> return;</b></p><p><b> }</b>
100、;</p><p> //-----------------打印柱體-------------</p><p> void putout(int lr,int count)</p><p><b> {</b></p><p> for(;count>=1;count--)</p><p
101、><b> {</b></p><p> printf("█");</p><p><b> }</b></p><p> if(HT[lr].lchild!=0)</p><p> printf("%d\n",HT[lr].weight);&
102、lt;/p><p><b> else</b></p><p> printf("%c\n",HT[lr].elem);</p><p> printf("\n");</p><p><b> return;</b></p><p>
103、;<b> }</b></p><p><b> 五、程序運行情況:</b></p><p> I:初始化(Initialization):</p><p> 圖2. 輸入I運行結(jié)果</p><p> E:編碼(Encoding)</p><p> 圖3. 輸入E
104、運行結(jié)果</p><p> D:譯碼(Decoding)</p><p> 圖4. 輸入D運行結(jié)果</p><p> P:打印表(TreePrint)</p><p> 圖5. 輸入P運行結(jié)果</p><p> 圖6. 輸入P運行結(jié)果2</p><p> 圖7. 輸入P運行結(jié)果3&l
105、t;/p><p> T:打印圖(Initialization)</p><p> 圖8. 輸入T運行結(jié)果1</p><p> 圖9. 輸入T運行結(jié)果2</p><p> 圖10. 輸入T運行結(jié)果3</p><p> 分別打開htmTree.txt, CodeFile.txt,TxtFile.txt, ToBeTr
106、an.txt文件(如下圖從上到下的順序)查看內(nèi)部存儲信息均符合預期結(jié)果。</p><p> 圖11. 各文件的存儲情況</p><p><b> 六、實驗心得:</b></p><p> 經(jīng)過此次課程設計,取獲不少:</p><p> 已基本形成了良好的編程思想。</p><p> 基本
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)結(jié)構(gòu)課程設計報告
- 數(shù)據(jù)結(jié)構(gòu)課程設計報告
- 數(shù)據(jù)結(jié)構(gòu)課程設計報告
- 數(shù)據(jù)結(jié)構(gòu)課程設計報告
- 數(shù)據(jù)結(jié)構(gòu)課程設計報告
- 數(shù)據(jù)結(jié)構(gòu)課程設計報告
- 數(shù)據(jù)結(jié)構(gòu)課程設計報告
- 數(shù)據(jù)結(jié)構(gòu)課程設計報告
- 《數(shù)據(jù)結(jié)構(gòu)》課程設計報告
- 數(shù)據(jù)結(jié)構(gòu)課程設計報告
- 數(shù)據(jù)結(jié)構(gòu)課程設計--數(shù)據(jù)結(jié)構(gòu)課程設計----huffman編碼
- 數(shù)據(jù)結(jié)構(gòu)課程設計——課程設計報告模板
- 數(shù)據(jù)結(jié)構(gòu)課程設計報告 (2)
- 數(shù)據(jù)結(jié)構(gòu)課程設計報告 (4)
- 數(shù)據(jù)結(jié)構(gòu)課程設計實習報告
- 數(shù)據(jù)結(jié)構(gòu)課程設計報告.doc
- 數(shù)據(jù)結(jié)構(gòu)課程設計報告 (3)
- 數(shù)據(jù)結(jié)構(gòu)課程設計報告 (2)
- 數(shù)據(jù)結(jié)構(gòu)課程設計報告 (2)
- 數(shù)據(jù)結(jié)構(gòu)課程設計報告--鏈表
評論
0/150
提交評論