版權(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> 題目:約瑟夫環(huán)</b></p><p><b> 問(wèn)題描述:</b></p><p> 編號(hào)是 1,2,……,n 的 n 個(gè)人按照順時(shí)針?lè)较驀蝗?,每個(gè)人持有一個(gè) 密碼(正整數(shù))。一開(kāi)始任選一個(gè)正整數(shù)作為報(bào)數(shù)上限值 m,從
2、第一個(gè)人開(kāi)始順 時(shí)針?lè)较蜃?1 開(kāi)始順序報(bào)數(shù),報(bào)到 m 時(shí)停止報(bào)數(shù)。報(bào) m 的人出列,將他的密碼 作為新的 m 值,從他在順時(shí)針?lè)较虻南乱粋€(gè)人開(kāi)始重新從 1 報(bào)數(shù),如此下去, 直到所有人全部出列為止。設(shè)計(jì)一個(gè)程序來(lái)求出出列順序。 </p><p><b> 基本要求:</b></p><p> 利用單向循環(huán)鏈表存儲(chǔ)結(jié)構(gòu)模擬此過(guò)程,按照出列的順序輸出各個(gè)人的編 號(hào)。
3、此題所用的循環(huán)鏈表中不需要“頭結(jié)點(diǎn)”,請(qǐng)注意空表和非空表的界限。</p><p><b> 測(cè)試數(shù)據(jù):</b></p><p> m 的初值為 20,n=7 ,7 個(gè)人的密碼依次為 3,1,7,2,4,8,4,首先 m的值為6 則正確的輸出應(yīng)該是6,1,4,7,2,3,5。</p><p><b> 要求:</b>&
4、lt;/p><p> 輸入數(shù)據(jù):首先輸入待處理人員數(shù)及他們的密碼,然后輸入 m 的初值,建立單循環(huán)鏈表。 </p><p><b> 輸出形式:</b></p><p> 建立一個(gè)輸出函數(shù),將正確的出列序列輸出。</p><p><b> 正文:</b></p><p>
5、<b> 一:需求分析</b></p><p><b> (1)輸入形式:</b></p><p> 首先輸入待處理人員數(shù)及他們的密碼,然后輸入 m 的初值,建立單循環(huán)鏈表。</p><p> 此程序設(shè)n<=30,所用的循環(huán)鏈表中不需要“頭結(jié)點(diǎn)”,請(qǐng)注意空表和非空表的界限。</p><p&
6、gt;<b> 輸出形式:</b></p><p> 建立一個(gè)輸出函數(shù),將正確的出列序列輸出。</p><p> 程序所能得到的功能:</p><p> 提供用戶從鍵盤(pán)輸入,Joseph約瑟夫環(huán)的必要數(shù)據(jù),并顯示出列順序。</p><p><b> 測(cè)試數(shù)據(jù):</b></p>
7、<p><b> 輸入207</b></p><p> 3 1 7 2 4 8 4</p><p><b> 輸出</b></p><p> 6 1 4 7 2 3 5</p><p><b> 二、概要設(shè)
8、計(jì)</b></p><p> 以單向循環(huán)鏈表實(shí)現(xiàn)該結(jié)構(gòu)。</p><p> 1. 抽象數(shù)據(jù)類型的定義為:</p><p><b> ADT LNode</b></p><p><b> {</b></p><p> 數(shù)據(jù)對(duì)象:D={ai | ai∈Cha
9、rSet,i= 1,2,…,n,n≥0}</p><p> 數(shù)據(jù)關(guān)系:R1={< ai-1 ,ai > | ai ∈D, I=2,…,n}</p><p><b> 基本操作:</b></p><p> InitList(&L)</p><p> 操作結(jié)果:構(gòu)造一個(gè)最大長(zhǎng)度ms內(nèi)容為空的有序表
10、L。</p><p> ClearList(&L)</p><p> 初始條件:線性表L已經(jīng)存在。</p><p> 操作結(jié)果:將L重置為空表。</p><p> EmptyList(L)</p><p> 初始條件:線性表L已經(jīng)存在。</p><p> 操作結(jié)果:若L為空表
11、返回TRUE,否則返回FALSE。</p><p> ListLength(L)</p><p> 初始條件:線性表L已經(jīng)存在。</p><p> 操作結(jié)果:返回L中數(shù)據(jù)元素個(gè)數(shù)。</p><p> GetElem(L, pos, &e)</p><p> 初始條件:線性表L已經(jīng)存在,1≤i≤List
12、Length(L)。</p><p> 操作結(jié)果:用e返回L中第i個(gè)數(shù)據(jù)元素的值。</p><p> LocateElem(L, e)</p><p> 初始條件:線性表L已經(jīng)存在。</p><p> 操作結(jié)果:返回L中第1個(gè)與e相同的元素的位序。若不存在返回0。</p><p> ListInsert (L
13、, i, e)</p><p> 初始條件:線性表L已經(jīng)存在。</p><p> 操作結(jié)果:在L中的第i個(gè)元素的位置之前插入新元素 e,L的長(zhǎng)度加1。ListDelete(L, pos, e)</p><p> 初始條件:線性表L已經(jīng)存在,1≤i≤ListLength(L)。</p><p> 操作結(jié)果:刪除L的第i個(gè)數(shù)據(jù)元素,并用e
14、返回其值,L的長(zhǎng)度減1。</p><p> ListTraverse(L)</p><p> 初始條件:線性表L已經(jīng)存在。</p><p> 操作結(jié)果:依次對(duì)L的每個(gè)數(shù)據(jù)元素進(jìn)行訪問(wèn)。</p><p> }ADT SqList</p><p> 本程序包含以下模塊:</p><p>&
15、lt;b> ?。?)主程序模塊:</b></p><p> void main()</p><p><b> {</b></p><p><b> 初始化;</b></p><p><b> 輸入數(shù)據(jù);</b></p><p>
16、<b> 執(zhí)行功能;</b></p><p><b> 顯示結(jié)果;</b></p><p><b> }</b></p><p> ?。?)各功能模塊——實(shí)現(xiàn)順序表的各項(xiàng)功能。</p><p><b> 各模塊的調(diào)用關(guān)系:</b></p>
17、;<p><b> ↓</b></p><p><b> 三、詳細(xì)設(shè)計(jì)</b></p><p> #include<stdio.h></p><p> #include<stdlib.h></p><p> typedef struct Node<
18、;/p><p><b> {</b></p><p><b> int data;</b></p><p> int password;</p><p> struct Node *next;</p><p> }Node, *LinkList;</p>
19、<p> void CreatLinkList(LinkList *L, int n)</p><p><b> {</b></p><p> Node *p, *q;</p><p><b> int i;</b></p><p> (*L) = (LinkList)mallo
20、c(sizeof(Node));</p><p> if ((*L) == NULL)</p><p><b> {</b></p><p> printf("memory allocation failed, goodbye");</p><p><b> exit(1);<
21、/b></p><p><b> }</b></p><p><b> p = (*L);</b></p><p> printf("請(qǐng)輸入第1個(gè)人的密碼:");</p><p> scanf("%d",&(p->password)
22、);</p><p> p->data = 1;</p><p> for (i = 2; i <= n; i++)</p><p><b> {</b></p><p> q = (LinkList)malloc(sizeof(Node));</p><p> if (q
23、== NULL)</p><p><b> {</b></p><p> printf("memory allocation failed, goodbye");</p><p><b> exit(1);</b></p><p><b> }</b>
24、;</p><p> printf("\n請(qǐng)輸入第%d個(gè)人的密碼:",i);</p><p> scanf("%d",&(q->password));</p><p> q->data = i;</p><p> p->next = q;</p><
25、p><b> p = q;</b></p><p><b> }</b></p><p> p->next = (*L);}</p><p> void Output(LinkList *L, int m, int n)</p><p><b> {</b>
26、;</p><p> Node *p, *q;</p><p> int i = 1;</p><p><b> p = (*L);</b></p><p> printf("輸出出對(duì)序列:");</p><p><b> while (n)</b&g
27、t;</p><p><b> {</b></p><p> while (i != m)</p><p><b> {</b></p><p><b> q = p;</b></p><p> p = p->next;</p>
28、;<p><b> i++;</b></p><p><b> }</b></p><p> printf("%-3d",p->data);</p><p> m = p->password;</p><p> q->next = p-&
29、gt;next;</p><p><b> free(p);</b></p><p> p = q->next;</p><p><b> i = 1;</b></p><p><b> n--;</b></p><p><b>
30、 }</b></p><p> printf("\n");</p><p><b> }</b></p><p> int main(void)</p><p><b> {</b></p><p> LinkList L;<
31、/p><p><b> int n, m;</b></p><p> printf("請(qǐng)輸入人數(shù):");</p><p> scanf("%d", &n);</p><p> getchar();</p><p> CreatLinkList(
32、&L, n);</p><p> printf("請(qǐng)輸入第一個(gè)報(bào)號(hào)數(shù):");</p><p> scanf("%d",&m);</p><p> Output(&L, m, n);</p><p> system("pause");</p>
33、<p><b> return 0;</b></p><p><b> }</b></p><p><b> 四、調(diào)試分析</b></p><p> 程序的編寫(xiě)和調(diào)試基本正常。</p><p> 遇到的問(wèn)題主要是:指針的指向的邊界問(wèn)題。</p>
34、;<p> 本實(shí)驗(yàn)采用數(shù)據(jù)抽象的與模塊化程序設(shè)計(jì)方法。思路清晰,實(shí)現(xiàn)時(shí)調(diào)試順利,各模塊具有很好的可重用性,得到了一次良好的程序設(shè)</p><p><b> 計(jì)訓(xùn)練。</b></p><p><b> 五、用戶使用說(shuō)明</b></p><p><b> 如何使用,詳細(xì)步驟</b>&
35、lt;/p><p> 根據(jù)提示輸入人數(shù)和每個(gè)人的信息</p><p><b> 調(diào)試結(jié)果</b></p><p><b> 七: 參考文獻(xiàn)</b></p><p> 1. 嚴(yán)蔚敏, 吳偉民. 數(shù)據(jù)結(jié)構(gòu). 清華大學(xué)出版社, 2005.11</p><p> 2. 譚浩
36、強(qiáng). C語(yǔ)言程序設(shè)計(jì). 清華大學(xué)出版社, 2005.11</p><p> 3. 范輝. Visual C++程序設(shè)計(jì). 高等教育出版社</p><p><b> 題目二</b></p><p><b> 題目:哈夫曼編碼器</b></p><p><b> 問(wèn)題描述:</b
37、></p><p> 利用哈夫曼編碼進(jìn)行信息通信可以大大提高信道利用率,縮短信息傳輸時(shí)間,降低傳 輸成本。但是,這要求在發(fā)送端通過(guò)一個(gè)編碼系統(tǒng)對(duì)待傳數(shù)據(jù)預(yù)先編碼,在接收端將傳 來(lái)的數(shù)據(jù)進(jìn)行譯碼(復(fù)原) 。試為這樣的信息傳輸寫(xiě)一個(gè)哈夫曼編/譯碼系統(tǒng)。 </p><p><b> 基本要求:</b></p><p> 1)I:初始化(I
38、nitialization) 。從終端讀入字符集大小 n,以及 n 個(gè)字符和 n 個(gè)權(quán) 值,建立哈夫曼樹(shù),并將它存于文件 hfmTree 中。輸出哈夫曼樹(shù),及各字符對(duì)應(yīng)的編碼。 </p><p> 2)E:編碼(Encoding)與譯碼(Decoding) 。 編碼(Encoding) 。利用已建好的哈夫曼樹(shù)(如不在內(nèi)存,則從文件 htmTree 中讀 入) ,對(duì)文件 ToBeTran 中的正文進(jìn)行編碼,然后將
39、結(jié)果存入文件 CodeFile 中。</p><p> 3)D:譯碼(Decoding) 。利用已建好的哈夫曼樹(shù)將文件 CodeFile 中的代碼進(jìn)行譯碼, 結(jié)果存入文件 TextFile 中。 </p><p> 4)P:印代碼文件(Print) 。將文件 CodeFile 以緊湊格式顯示在終端上,每行 50 個(gè)代 碼。同時(shí)將此字符形式的編碼寫(xiě)入文件 CodePrint 中。 <
40、;/p><p> 5)T:印哈夫曼樹(shù)(Tree Printing) 。將已在內(nèi)存中的哈夫曼樹(shù)以直觀的方式(樹(shù)或 凹入表形式)顯示在終端上,同時(shí)將此字符形式的哈夫曼樹(shù)寫(xiě)入文件 TreePrint 中。 </p><p><b> 測(cè)試數(shù)據(jù):</b></p><p> (1) 利用教科書(shū)例6-2中的數(shù)據(jù)調(diào)試程序。</p><p
41、> (2) 用下表給出的字符集和頻度的實(shí)際統(tǒng)計(jì)數(shù)據(jù)建立哈夫曼樹(shù),并實(shí)現(xiàn)以下報(bào)文的編碼和譯碼:“THIS PROGRAM IS MY FAVORITE”。</p><p><b> 正文:</b></p><p><b> 需求分析</b></p><p><b> 輸入形式:</b>&l
42、t;/p><p> 程序的輸入,包含輸入的數(shù)據(jù)格式和說(shuō)明: there are three students(char 型) </p><p><b> 輸出形式:</b></p><p> 程序輸出的形式:1)統(tǒng)計(jì)字符出現(xiàn)次數(shù)并輸出 ;2) 根據(jù)字符出現(xiàn)次數(shù)求出哈夫曼編碼并輸出(根據(jù)算法差異得到的編碼可能不同,但應(yīng)具有兩個(gè)特征,一是編碼長(zhǎng)
43、度應(yīng)與表中相同,二是編碼應(yīng)該是前綴編碼);3) 以樹(shù)的形式輸出哈夫曼樹(shù) .</p><p> 程序所能達(dá)到的功能:</p><p> 1)I:初始化(Initialization) 。從終端讀入字符集大小 n,以及 n 個(gè)字符和 n 個(gè)權(quán) 值,建立哈夫曼樹(shù),并將它存于文件 hfmTree 中。輸出哈夫曼樹(shù),及各字符對(duì)應(yīng)的編碼。 2)W:輸入(Input) 。從終端讀入需要編碼的字符串
44、s,將字符串 s 存入文件 Tobetran.txt 中。 3)E:編碼(Encoding)與譯碼(Decoding) 。 編碼(Encoding) 。利用已建好的哈夫曼樹(shù)(如不在內(nèi)存,則從文件 htmTree 中讀 入) ,對(duì)文件 ToBeTran 中的正文進(jìn)行編碼,然后將結(jié)果存入文件 CodeFile 中。 譯碼(Decoding) 。利用已建好的哈夫曼樹(shù)將文件 CodeFile 中的代碼進(jìn)行譯碼, 結(jié)果存入文件 TextFile
45、中。 印代碼文件(Print) 。將文件 CodeFile 以緊湊格式顯示在終端上,每行 50 個(gè)代 碼。同時(shí)將此字符形式的編碼寫(xiě)入文件 CodePrint 中。 4)T:印哈夫曼樹(shù)(Tree Printing) 。將已在內(nèi)存中的哈夫曼樹(shù)以直觀的方式(樹(shù)或 凹入表形式)顯示在終端上,同時(shí)將此字符形式的哈夫</p><p><b> 測(cè)試數(shù)據(jù):</b></p><p>
46、;<b> 概要設(shè)計(jì)</b></p><p><b> ADT {</b></p><p> 數(shù)據(jù)對(duì)象V: V是具有不同權(quán)值的字符集。</p><p><b> 基本操作P:</b></p><p> InitCode(HTCode *Hr,int &n)&l
47、t;/p><p><b> 初始化:建立Hr</b></p><p> 操作結(jié)果:存儲(chǔ)n個(gè)編碼字符、權(quán)值。</p><p> Select(Huffmantree &Ht,int end,int *s1,int *s2)</p><p> 初始化:HT為建好的哈夫曼樹(shù),end為開(kāi)始查找的位置,s1,s2為最小
48、的兩個(gè)數(shù)。</p><p> 操作結(jié)果:從剩下的數(shù)種尋找到兩個(gè)最小的數(shù),返回其值。</p><p> InitHfmtree(Huffmantree &Ht,HTCode Hr[],int &n)</p><p> 初始化:建立哈夫曼樹(shù)Ht</p><p> 操作結(jié)果:對(duì)傳入的字符進(jìn)行編碼存入Hr中</p>
49、<p> Encoding(HTCode *Hr,int n)</p><p> 初始化:Hr已經(jīng)存儲(chǔ)編碼、字符</p><p> 操作結(jié)果:從Hr中獲取字符以及編碼進(jìn)行輸出</p><p> Decoding(HTCode *Hr,int n)</p><p> 初始化:Hr已經(jīng)存儲(chǔ)編碼、字符</p>
50、<p> 操作結(jié)果:從Hr中獲取編碼的字符進(jìn)行輸出</p><p> TreePrint(Huffmantree &Ht,HTCode Hr[],int n)</p><p> 初始化:哈夫曼樹(shù)Ht,存儲(chǔ)信息Hr</p><p> 操作結(jié)果:打印哈夫曼樹(shù)的各個(gè)結(jié)點(diǎn)</p><p><b> }</b
51、></p><p><b> 詳細(xì)設(shè)計(jì)</b></p><p> #include <dos.h></p><p> #include <conio.h></p><p> #include <stdio.h></p><p> #include
52、 <stdlib.h></p><p> #include <string.h></p><p> typedef struct</p><p><b> {</b></p><p> float weight; //結(jié)點(diǎn)權(quán)值</p><p> unsigned
53、int parent,lchild,rchild; //結(jié)點(diǎn)的父指針,左右孩子指針</p><p> }HTNode,*HuffmanTree; //動(dòng)態(tài)分配數(shù)組存儲(chǔ)哈夫曼樹(shù)</p><p> typedef char **HuffmanCode; //動(dòng)態(tài)分配數(shù)組存儲(chǔ)哈夫曼編碼表</p><p> void CreateHuffmanTree(Huffman
54、Tree &,float*,int ); //生成哈夫曼樹(shù)</p><p> void HuffmanCoding(HuffmanTree,HuffmanCode &,int ); //對(duì)哈夫曼樹(shù)進(jìn)行編碼</p><p> void PrintHuffmanCode(HuffmanCode,float*,int); //顯示哈夫曼編碼</p><p&
55、gt; void Select(HuffmanTree,int,int&,int&); //在數(shù)組中尋找權(quán)值最小的兩個(gè)結(jié)點(diǎn)</p><p> void main()</p><p><b> {</b></p><p> HuffmanTree HT; //哈夫曼樹(shù)HT</p><p> Huf
56、fmanCode HC; //哈夫曼編碼表HC</p><p> int n,i; //n是哈夫曼樹(shù)葉子結(jié)點(diǎn)數(shù)</p><p> float *w; //w存放葉子結(jié)點(diǎn)權(quán)值</p><p> char j='y';</p><p> while(j!='N'&&j!='n'
57、;)</p><p><b> {</b></p><p> printf("請(qǐng)輸入字符數(shù)目:");</p><p> scanf("%d",&n); //輸入字符數(shù)目</p><p><b> if(n<=1) </b></p&g
58、t;<p><b> {</b></p><p> printf("該數(shù)不合理!\n");continue;</p><p><b> }</b></p><p> w=(float*)malloc(n*sizeof(unsigned int)); //開(kāi)辟空間存放權(quán)值</p
59、><p> printf("請(qǐng)輸入各字符出現(xiàn)的次數(shù)/權(quán)值:\n");</p><p> for(i=0;i<n;i++) scanf("%f",&w[i]); //輸入各字符出現(xiàn)的次數(shù)/權(quán)值</p><p> CreateHuffmanTree(HT,w,n); //生成哈夫曼樹(shù)</p><
60、p> HuffmanCoding(HT,HC,n); //進(jìn)行哈夫曼編碼</p><p> PrintHuffmanCode(HC,w,n); //顯示哈夫曼編碼</p><p> printf("哈夫曼樹(shù)構(gòu)造完畢!");</p><p> scanf(" %c",&j);</p><
61、p><b> }</b></p><p><b> }</b></p><p> void CreateHuffmanTree(HuffmanTree &HT,float *w,int n)</p><p> {//w存放n個(gè)結(jié)點(diǎn)的權(quán)值,將構(gòu)造一棵哈夫曼樹(shù)HT</p><p>
62、<b> int i,m;</b></p><p> int s1,s2;</p><p> HuffmanTree p;</p><p> if(n<=1) return;</p><p> m=2*n-1; //n個(gè)葉子結(jié)點(diǎn)的哈夫曼樹(shù),有2*n-1個(gè)結(jié)點(diǎn)</p><p> H
63、T=(HuffmanTree)malloc((m+1)*sizeof(HTNode)); //開(kāi)辟2*n各結(jié)點(diǎn)空間</p><p> for(p=HT+1,i=1;i<=n;++i,++p,++w) //進(jìn)行初始化</p><p><b> {</b></p><p> p->weight=*w;</p><
64、;p> p->parent=0;</p><p> p->lchild=0;</p><p> p->rchild=0;</p><p><b> }</b></p><p> for(;i<=m;++i,++p)</p><p><b> {&
65、lt;/b></p><p> p->weight=0;</p><p> p->parent=0;</p><p> p->lchild=0;</p><p> p->rchild=0;</p><p><b> }</b></p><
66、p> for(i=n+1;i<=m;++i) //建哈夫曼樹(shù)</p><p><b> {</b></p><p> Select(HT,i-1,s1,s2); </p><p> //從HT[1...i-1]中選擇parent為0且weight最小的兩個(gè)結(jié)點(diǎn),其序號(hào)分別為s1和s2</p><p&g
67、t; HT[s1].parent=i; HT[s2].parent=i; //修改s1和s2結(jié)點(diǎn)的父指針parent</p><p> HT[i].lchild=s1; HT[i].rchild=s2; //修改i結(jié)點(diǎn)的左右孩子指針</p><p> HT[i].weight=HT[s1].weight+HT[s2].weight; //修改權(quán)值</p><p&g
68、t;<b> }</b></p><p><b> }</b></p><p> void HuffmanCoding(HuffmanTree HT,HuffmanCode &HC,int n)</p><p> {//將有n個(gè)葉子結(jié)點(diǎn)的哈夫曼樹(shù)HT進(jìn)行編碼, 所編的碼存放在HC中</p>&
69、lt;p> //方法是從葉子到根逆向求每個(gè)葉子結(jié)點(diǎn)的哈夫曼編碼</p><p> int i,c,f,start;</p><p><b> char *cd;</b></p><p> HC=(HuffmanCode)malloc((n+1)*sizeof(char *)); //分配n個(gè)編碼的頭指針向量</p>
70、<p> cd=(char *)malloc(n*sizeof(char)); //開(kāi)辟一個(gè)求編碼的工作空間</p><p> cd[n-1]='\0'; //編碼結(jié)束符</p><p> for(i=1;i<=n;++i) //逐個(gè)地求哈夫曼編碼</p><p><b> {</b></p>
71、<p> start=n-1; //編碼結(jié)束位置</p><p> for(c=i,f=HT[i].parent;f!=0;c=f,f=HT[f].parent) //從葉子到根逆向求編碼</p><p> if(HT[f].lchild==c) cd[--start]='0'; //若是左孩子編為'0'</p><p
72、> else cd[--start]='1'; //若是右孩子編為'1' </p><p> HC[i]=(char *)malloc((n-start)*sizeof(char)); //為第i個(gè)編碼分配空間</p><p> strcpy(HC[i],&cd[start]); //將編碼從cd復(fù)制到HC中</p>&
73、lt;p><b> }</b></p><p> free(cd); //釋放工作空間</p><p><b> }</b></p><p> void PrintHuffmanCode(HuffmanCode HC,float *w,int n)</p><p> {//顯示有n個(gè)
74、葉子結(jié)點(diǎn)的哈夫曼樹(shù)的編碼表</p><p><b> int i;</b></p><p> printf("HuffmanCode is :\n");</p><p> for(i=1;i<=n;i++)</p><p><b> {</b></p>
75、<p> printf(" %3d---",w[i-1])</p><p> puts(HC[i]);</p><p><b> }</b></p><p> printf("\n");</p><p><b> }</b></p&
76、gt;<p> void Select(HuffmanTree HT,int t,int&s1,int&s2)</p><p> {//在HT[1...t]中選擇parent不為0且權(quán)值最小的兩個(gè)結(jié)點(diǎn),其序號(hào)分別為s1和s2 </p><p> int i,m,n;</p><p> m=n=10000; </p&
77、gt;<p> for(i=1;i<=t;i++)</p><p><b> {</b></p><p> if(HT[i].parent==0&&(HT[i].weight<m||HT[i].weight<n))</p><p><b> if(m<n)</b>
78、;</p><p><b> {</b></p><p> n=HT[i].weight;s2=i;</p><p><b> }</b></p><p><b> else </b></p><p><b> {</b>
79、</p><p> m=HT[i].weight;s1=i;</p><p><b> }</b></p><p><b> }</b></p><p> if(s1>s2) //s1放較小的序號(hào)</p><p><b> {</b>&l
80、t;/p><p> i=s1;s1=s2;s2=i;</p><p><b> }</b></p><p><b> }</b></p><p><b> 調(diào)試分析</b></p><p> ?。?).問(wèn)題 1:輸入數(shù)據(jù)以存入文件的功能總是出現(xiàn)錯(cuò)誤文
81、檔。 解決辦法:將文件有關(guān)程序全部刪除,重新編寫(xiě)。 </p><p> ?。?).問(wèn)題 2:有時(shí)程序運(yùn)行錯(cuò)誤,是因?yàn)樯偌恿死ㄌ?hào)造成的。解決辦法:仔細(xì)檢查程序。 </p><p> (3).問(wèn)題 3:在主函數(shù)中調(diào)用各函數(shù)時(shí),機(jī)器總有認(rèn)為是語(yǔ)法錯(cuò)誤。解決辦法:仔細(xì)檢查,發(fā)現(xiàn)是漏寫(xiě)了函數(shù)類型,對(duì)函數(shù)聲明應(yīng)與函數(shù)定義的類型一致。 </p><p><b> 用
82、戶使用說(shuō)明</b></p><p> 請(qǐng)根據(jù)提示一次輸入字符數(shù)目和個(gè)字符數(shù)出現(xiàn)的次數(shù)/權(quán)值,最終得到輸出結(jié)果正如測(cè)試結(jié)果里面所示。</p><p><b> 測(cè)試結(jié)果</b></p><p><b> 七、 參考文獻(xiàn)</b></p><p> 1. 嚴(yán)蔚敏, 吳偉民. 數(shù)據(jù)結(jié)
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)結(jié)構(gòu)--約瑟夫環(huán)課程設(shè)計(jì)報(bào)告
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告---約瑟夫環(huán)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告--約瑟夫環(huán)
- 數(shù)據(jù)結(jié)構(gòu)_約瑟夫環(huán)_課程設(shè)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)約瑟夫環(huán)的課程設(shè)計(jì)報(bào)告
- 《數(shù)據(jù)結(jié)構(gòu)》課程設(shè)計(jì)“約瑟夫環(huán)”
- 約瑟夫環(huán)課程設(shè)計(jì)----數(shù)據(jù)結(jié)構(gòu)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--- 約瑟夫(joseph)環(huán)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--- 約瑟夫環(huán)問(wèn)題
- 數(shù)據(jù)結(jié)構(gòu)約瑟夫環(huán)模擬課程設(shè)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--約瑟夫環(huán)問(wèn)題
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---約瑟夫(joseph)環(huán)問(wèn)題
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)約瑟夫(joseph)環(huán)問(wèn)題
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告約瑟夫環(huán)完整版[1]
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告---joseph環(huán)
- 數(shù)據(jù)結(jié)構(gòu)約瑟夫環(huán)問(wèn)題
- 數(shù)據(jù)結(jié)構(gòu)約瑟夫環(huán)問(wèn)題
- 約瑟夫環(huán)課程設(shè)計(jì)報(bào)告
- 約瑟夫環(huán)課程設(shè)計(jì)報(bào)告
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---joseph環(huán)
評(píng)論
0/150
提交評(píng)論