數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告模板(參考)_第1頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告模板(參考)_第2頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告模板(參考)_第3頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告模板(參考)_第4頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告模板(參考)_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 攀枝花學(xué)院數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(論文)題 目:散列表的設(shè)計與實現(xiàn) 學(xué)生姓名: 劉攀 學(xué) 號: 4 所在院(系): 數(shù)學(xué)與計算機學(xué)院 專 業(yè): 網(wǎng)絡(luò)工程 班 級: 二班 指 導(dǎo) 教 師: 蔣斌 職稱: 副教授 2017年 6 月 28 日攀枝花學(xué)院教務(wù)處制附件2: 攀枝花學(xué)院本科學(xué)生課程設(shè)計任務(wù)書題目散列表的設(shè)計與實現(xiàn)1、課程設(shè)計的目的1) 使學(xué)生進一步理解和掌握課堂上所學(xué)各種基本抽象數(shù)據(jù)類型的邏輯結(jié)構(gòu)、存儲結(jié)構(gòu)和操作實現(xiàn)算法,以及它們在程序中的使用方法。2) 使學(xué)生掌握軟件設(shè)計的基本內(nèi)容和設(shè)計方法,并培養(yǎng)學(xué)生進行規(guī)范化軟件設(shè)計的能力。3) 使學(xué)生掌握使用各種計算機資料和有關(guān)參考資料,提高學(xué)生進行

2、程序設(shè)計的基本能力。2、課程設(shè)計的內(nèi)容和要求(包括原始數(shù)據(jù)、技術(shù)要求、工作要求等)【問題描述】設(shè)計散列表實現(xiàn)電話號碼查找系統(tǒng)?!净疽蟆?) 設(shè)每個記錄有下列數(shù)據(jù)項:電話號碼、用戶名、地址;2) 從鍵盤輸入各記錄,分別以電話號碼和用戶名為關(guān)鍵字建立散列表;3) 采用一定的方法解決沖突;4) 查找并顯示給定電話號碼的記錄;5) 查找并顯示給定用戶名的記錄?!具M一步完成內(nèi)容】1) 系統(tǒng)功能的完善;2) 設(shè)計不同的散列函數(shù),比較沖突率;3) 在散列函數(shù)確定的前提下,嘗試各種不同類型處理沖突的方法,考察平均查找長度的變化。3、主要參考文獻1劉大有等,數(shù)據(jù)結(jié)構(gòu)(C語言版),高等教育出版社2嚴(yán)蔚敏等,數(shù)

3、據(jù)結(jié)構(gòu)(C語言版),清華大學(xué)出版社3William Ford,William Topp,Data Structure with C+清華大學(xué)出版社4蘇仕華等,數(shù)據(jù)結(jié)構(gòu)課程設(shè)計,機械工業(yè)出版社4、課程設(shè)計工作進度計劃1) 分析題目,查閱相關(guān)資料:1天;2) 算法設(shè)計、數(shù)據(jù)結(jié)構(gòu)設(shè)計:1天3) 編寫代碼并調(diào)試:1天4) 完成課程設(shè)計報告:2天指導(dǎo)教師(簽字)日期年 月 日教研室意見:年 月 日學(xué)生(簽字): 接受任務(wù)時間: 年 月 日注:任務(wù)書由指導(dǎo)教師填寫。附件3: 課程設(shè)計(論文)指導(dǎo)教師成績評定表題目名稱評分項目分值得分評價內(nèi)涵工作表現(xiàn)20%01學(xué)習(xí)態(tài)度6遵守各項紀(jì)律,工作刻苦努力,具有良好的

4、科學(xué)工作態(tài)度。02科學(xué)實踐、調(diào)研7通過實驗、試驗、查閱文獻、深入生產(chǎn)實踐等渠道獲取與課程設(shè)計有關(guān)的材料。03課題工作量7按期圓滿完成規(guī)定的任務(wù),工作量飽滿。能力水平35%04綜合運用知識的能力10能運用所學(xué)知識和技能去發(fā)現(xiàn)與解決實際問題,能正確處理實驗數(shù)據(jù),能對課題進行理論分析,得出有價值的結(jié)論。05應(yīng)用文獻的能力5能獨立查閱相關(guān)文獻和從事其他調(diào)研;能提出并較好地論述課題的實施方案;有收集、加工各種信息及獲取新知識的能力。06設(shè)計(實驗)能力,方案的設(shè)計能力5能正確設(shè)計實驗方案,獨立進行裝置安裝、調(diào)試、操作等實驗工作,數(shù)據(jù)正確、可靠;研究思路清晰、完整。07計算及計算機應(yīng)用能力5具有較強的數(shù)據(jù)

5、運算與處理能力;能運用計算機進行資料搜集、加工、處理和輔助設(shè)計等。08對計算或?qū)嶒灲Y(jié)果的分析能力(綜合分析能力、技術(shù)經(jīng)濟分析能力)10具有較強的數(shù)據(jù)收集、分析、處理、綜合的能力。成果質(zhì)量45%09插圖(或圖紙)質(zhì)量、篇幅、設(shè)計(論文)規(guī)范化程度5符合本專業(yè)相關(guān)規(guī)范或規(guī)定要求;規(guī)范化符合本文件第五條要求。10設(shè)計說明書(論文)質(zhì)量30綜述簡練完整,有見解;立論正確,論述充分,結(jié)論嚴(yán)謹(jǐn)合理;實驗正確,分析處理科學(xué)。11創(chuàng)新10對前人工作有改進或突破,或有獨特見解。成績指導(dǎo)教師評語指導(dǎo)教師簽名: 年月日摘 要信息社會的高科技,商品經(jīng)濟化的高效益,使計算機的應(yīng)用已普及到經(jīng)濟和社會生活的各個領(lǐng)域。計算機

6、雖然與人類的關(guān)系愈來愈密切,還有人由于計算機操作不方便繼續(xù)用手工勞動。散列表的設(shè)計與實現(xiàn)所涉及到的操作算法都是以鏈表或順序表的基本運算作為基礎(chǔ)的,此程序通過通訊錄實現(xiàn),包括建立通訊錄,添加記錄,查詢記錄,刪除記錄,顯示記錄,修改記錄。通過順序表存儲結(jié)構(gòu)實現(xiàn)數(shù)據(jù)的輸入,實現(xiàn)各子程序過程的演示,對異常輸入信息報錯。 關(guān)鍵字:新建通訊錄,散列表,散列函數(shù),處理沖突目 錄摘 要V1 課程設(shè)計的目的和意義12 需求分析22.1 需求概述22.2 需求環(huán)境22.3 功能描述23 整體設(shè)計(方案設(shè)計)33.1 系統(tǒng)功能設(shè)計33.2 處理功能設(shè)計33.3 主要模塊53.4 算法模塊設(shè)計53.4.1 哈希算法5

7、3.5 二次探測再散列54 程序結(jié)構(gòu)及源代碼說明64.1程序結(jié)構(gòu)說明64.1.1 哈希函數(shù)64.1.2 沖突處理函數(shù)64.2程序源碼及說明75 程序測試及運行結(jié)果說明145.1 主菜單運行界面145.2 各項功能測試145.2.1用戶信息錄入145.2.2 沖突解決155.2.3 用戶查找15總 結(jié)16參考文獻181 課程設(shè)計的目的和意義 數(shù)據(jù)結(jié)構(gòu)主要介紹一些最常用的數(shù)據(jù)結(jié)構(gòu),闡明各種數(shù)據(jù)結(jié)構(gòu)內(nèi)在的邏輯關(guān)系,討論其在計算機中的存儲表示,以及在其上進行各種運算時的實現(xiàn)算法,并對算法的效率進行簡單的分析和討論。數(shù)據(jù)結(jié)構(gòu)是介于數(shù)學(xué)、計算機軟件和計算機硬件之間的一門計算機專業(yè)的核心課程,它是計算機程序

8、設(shè)計、數(shù)據(jù)庫、操作系統(tǒng)、編譯原理及人工智能等的重要基礎(chǔ),廣泛的應(yīng)用于信息學(xué)、系統(tǒng)工程等各種領(lǐng)域。學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)是為了將實際問題中所涉及的對象在計算機中表示出來并對它們進行處理。通過課程設(shè)計可以提高學(xué)生的思維能力,促進學(xué)生的綜合應(yīng)用能力和專業(yè)素質(zhì)的提高。通過此次課程設(shè)計主要達到以下目的:(1)了解并掌握數(shù)據(jù)結(jié)構(gòu)與算法的設(shè)計方法,具備初步的獨立分析和設(shè)計能力;(2)初步掌握軟件開發(fā)過程的問題分析、系統(tǒng)設(shè)計、程序編碼、測試等基本方法和技能;(3)提高綜合運用所學(xué)的理論知識和方法獨立分析和解決問題的能力;(4)訓(xùn)練用系統(tǒng)的觀點和軟件開發(fā)一般規(guī)范進行軟件開發(fā),培養(yǎng)軟件工作者所應(yīng)具備的科學(xué)的工作方法和作風(fēng)。

9、(5)鍛煉動手操作能力,培養(yǎng)我們的創(chuàng)新思維能力。從編寫代碼,到調(diào)試程序,再到運行程序,這是設(shè)計的最重要環(huán)節(jié),它需要我們用邏輯思維將我們所學(xué)知識和實際相結(jié)合,并在對方案的分析過程中能夠有所創(chuàng)新,從而使運行方案更嚴(yán)謹(jǐn)更簡潔。培養(yǎng)好良好的思維,便要將這種思維賦予實踐,即動手操作能力。目前,市場上關(guān)于計算機運用、計算機軟件和電子類相關(guān)專業(yè)的人才輩出,但畢業(yè)生在走進企業(yè)公司政府機構(gòu)或研究單位之后,感覺到缺乏實際開發(fā)設(shè)計項目的經(jīng)驗,所以我們在課程設(shè)計中能夠多訓(xùn)練,提高我們將知識融會貫通的能力(6)培養(yǎng)我們嚴(yán)謹(jǐn)治學(xué)的態(tài)度,以及認(rèn)清自己學(xué)知識、運用知識的能力。不管是編寫代碼,調(diào)試代碼,還是運行代碼,需要我們嚴(yán)

10、謹(jǐn)?shù)乃季S和態(tài)度去對待,這樣才能真正起到此設(shè)計的作用。我們也能夠在設(shè)計中認(rèn)識到自己對數(shù)據(jù)結(jié)構(gòu)這門課程學(xué)習(xí)的欠缺,對以后我們的學(xué)習(xí)有著很大的指導(dǎo)和幫助。學(xué)習(xí)課程設(shè)計,編寫程序,將數(shù)據(jù)結(jié)構(gòu)和算法相結(jié)合,了解到數(shù)據(jù)結(jié)構(gòu)、算法和程序之間的關(guān)系,更學(xué)習(xí)到數(shù)據(jù)結(jié)構(gòu)和算法的最佳定位2 需求分析2.1 需求概述 在各個領(lǐng)域,不同的通訊錄其功能都是為用戶儲存信息,查找信息提供方便的有效工具。一個內(nèi)容全面、功能先進的通訊錄對每個用戶來說是一個理想的助手?,F(xiàn)在,我們通過對散列表和基本操作的學(xué)習(xí)和理解,以及在掌握線性表等基本運算的基礎(chǔ)上,實現(xiàn)對線性表操作。這里我們所做的通訊錄則是在數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí)之后,利用計算機c程序語言

11、編寫的,可以實現(xiàn)數(shù)據(jù)的新建通訊錄,添加記錄,查詢記錄,修改記錄,刪除記錄,顯示記錄功能的可執(zhí)行程序。通過它可以進行對聯(lián)系對象的姓名、地址、電話號碼等的記錄與查找。當(dāng)然,該程序設(shè)計也有不足之處,我們一定會不斷地努力去更正完善。很多涉及通訊錄的操作的算法都是以順序表操作為基礎(chǔ),通過順序表的建立,初始化,結(jié)點添加、查詢與刪除的演示,方便在學(xué)習(xí)中更好的理解順序表結(jié)點的添加、查詢、刪除的過程2.2 需求環(huán)境本課程設(shè)計需要的設(shè)備為硬件要求和軟件配置要求具體要求如下:硬件要求:一臺計算機。軟件配置:WINDOWS、C/VC+6.0。2.3 功能描述 本次課題是的散列表設(shè)計與實現(xiàn)。主要是通過C+語言和數(shù)據(jù)結(jié)構(gòu)

12、算法實現(xiàn),主要有以下功能:1.每個記錄需要有存儲的數(shù)據(jù):姓名、電話、地址;2.從鍵盤輸入各記錄,分別以電話號碼和用戶名為關(guān)鍵字建立散列表;3.采用一定的方法解決沖突;4.查找并顯示給定電話號碼的記錄;5.查找并顯示給定用戶名的記錄。3 整體設(shè)計(方案設(shè)計)3.1 系統(tǒng)功能設(shè)計定義電話本記錄數(shù)量(MAXSIZE)、表長(HASHSIZE)、姓名長度(MAX_SIZE)以及結(jié)構(gòu)體typedef struct的內(nèi)容,構(gòu)造兩個哈希函數(shù)hash1和hash2。功能示意圖:錄入子系統(tǒng)查詢子系統(tǒng)姓名地址號碼姓名查找號碼查詢電話號碼管理系統(tǒng)圖3.1功能示意圖3.2 處理功能設(shè)計增加系統(tǒng)功能如下: 添加用戶信息

13、; 讀取所有用戶信息; 以姓名建立哈希表;以電話號碼建立哈希表; 查找并顯示給定用戶名的記錄; 查找并顯示給定電話號碼的記錄; 清屏以及保存功能;處理流程示意圖:開始進入錄入系統(tǒng)獲得關(guān)鍵字key用Hash1(key)計算地址比較nam_2(d)的值是否和關(guān)鍵字相等輸出記錄用探查序列d+i*hash2(key)計算(尋找)散列地址結(jié)束比較nam_Ht(d)的值是否和關(guān)鍵字相等未找到記錄圖3.2 處理流程圖 3.3 主要模塊鍵盤輸入各人的信息:void getin();顯示輸入的用戶信息:void ShowInformation() ;除留余數(shù)法構(gòu)造哈希函數(shù):int Hash1();構(gòu)造把字符串轉(zhuǎn)

14、換成整型數(shù)哈希函數(shù):int Hash2();沖突處理函數(shù):Status collision();以姓名為關(guān)鍵字建表:void CreateHash1();以姓名為關(guān)鍵字查表:void SearchHash1();以電話號碼為關(guān)鍵字建表:void CreateHash2();以電話號碼為關(guān)鍵字查表:void SearchHash2();輸出菜單函數(shù):int main()。3.4 算法模塊設(shè)計3.4.1 哈希算法輸入待查找的值即key,即可查找到其對應(yīng)的值即可。int Hash1(NA str) long n;int m;n=fold(str); m=n%HASHSIZE; return m; i

15、nt Hash2(NA str) long n;int m;n = atoi(str);.m=n%HASHSIZE; return m; 3.5 二次探測再散列沖突發(fā)生時,使用某種探查(亦稱探測)技術(shù)在散列表中形成一個探查(測)序列。沿此序列逐個單元地查找,直到找到給定的關(guān)鍵字,或者碰到一個開放的地址(即該地址單元為空)為止(若要插入,在探查到開放的地址,則可將待插入的新結(jié)點存人該地址單元)。查找時探查到開放的地址則表明表中無待查的關(guān)鍵字,即查找失敗。int i,q;i=c/2+1;while(i=0) return q; else i=c/2+1; else q=(p-i*i)%HASHSI

16、ZE; c+; if(q=0) return q; else i=c/2+1;4 程序結(jié)構(gòu)及源代碼說明4.1程序結(jié)構(gòu)說明4.1.1 哈希函數(shù)將用戶名折疊處理,折疊處理后的數(shù),用除留余數(shù)法構(gòu)造哈希函數(shù)。建立,代碼如下:int Hash1(NA str) long n;int m;n=fold(str); m=n%HASHSIZE; return m; int Hash2(NA str) long n;int m;n = atoi(str);.m=n%HASHSIZE; return m; 4.1.2 沖突處理函數(shù)建立沖突處理函數(shù),采用二次探測再散列法解決沖突,代碼如下:tatus collisi

17、on(int p,int &c) int i,q;i=c/2+1;while(i=0) return q; else i=c/2+1; else q=(p-i*i)%HASHSIZE; c+; if(q=0) return q; else i=c/2+1; return UNSUCCESS;4.2程序源碼及說明#include#include#include#include#include #define MAXSIZE 20 /電話薄記錄數(shù)量 #define MAX_SIZE 20 /人名的最大長度#define HASHSIZE 53 /定義表長 #define SUCCESS 1#def

18、ine UNSUCCESS -1#define LEN sizeof(HashTable)typedef int Status;typedef char NAMAX_SIZE;typedef struct/記錄NA name;NA tel;NA add;Record;typedef struct/哈希表Record *elemHASHSIZE; /數(shù)據(jù)元素存儲基址int count; /當(dāng)前數(shù)據(jù)元素個數(shù)int size; /當(dāng)前容量HashTable;Status eq(NA x,NA y)/關(guān)鍵字比較,相等返回SUCCESS;否則返回UNSUCCESSif(strcmp(x,y)=0) re

19、turn SUCCESS;else return UNSUCCESS;Status NUM_BER; /記錄的個數(shù)void getin(Record* a)/鍵盤輸入各人的信息coutNUM_BER;int i; for(i=0;iNUM_BER;i+) cout請輸入第i+1; cout請輸入第i+1ai.tel; cout請輸入第i+1ai.add; /gets(str2);?void ShowInformation(Record* a)/顯示輸入的用戶信息 int i;for( i=0;iNUM_BER;i+) coutn第i+1個用戶信息:n 姓 名:n 電

20、話號碼:ai.teln 聯(lián)系地址:ai.addn; void Cls(Record* a)cout*; system(cls);long fold(NA s)/人名的折疊處理char *p;long sum=0;NA ss;strcpy(ss,s);/復(fù)制字符串,不改變原字符串的大小寫strupr(ss);/將字符串ss轉(zhuǎn)換為大寫形式p=ss;while(*p!=0) sum+=*p+; coutnsum=sum; return sum;int Hash1(NA str)/哈希函數(shù)long n;int m;n=fold(str);/先將用戶名進行折疊處理m=n%HASHSIZE; /折疊處理后

21、的數(shù),用除留余數(shù)法構(gòu)造哈希函數(shù)return m; /并返回模值int Hash2(NA str)/哈希函數(shù)long n;int m;n = atoi(str);/把字符串轉(zhuǎn)換成整型數(shù).m=n%HASHSIZE; /用除留余數(shù)法構(gòu)造哈希函數(shù)return m; /并返回模值Status collision(int p,int &c)/沖突處理函數(shù),采用二次探測再散列法解決沖突int i,q;i=c/2+1;while(i=0) return q; else i=c/2+1; else q=(p-i*i)%HASHSIZE; c+; if(q=0) return q; else i=c/2+1; r

22、eturn UNSUCCESS;void benGetTime();void CreateHash1(HashTable* H,Record* a)/建表,以人的姓名為關(guān)鍵字,建立相應(yīng)的散列表benGetTime();int i,p=-1,c,pp; for(i=0;ielempp!=NULL) pp=collision(p,c); if(pp0) cout第i+1elempp=&(ai); /求得哈希地址,將信息存入 H-count+; cout第i+1個記錄沖突次數(shù)為c.n;/需要顯示沖突次數(shù)時輸出coutn建表完成!n此哈希表容量為HASHSIZE,當(dāng)前表內(nèi)存儲的記錄個數(shù)為count.n

23、;benGetTime();void SearchHash1(HashTable* H,int &c)/在通訊錄里查找姓名關(guān)鍵字,若查找成功,顯示信息benGetTime();NA str;coutstr;int p,pp;p=Hash1(str);pp=p;while(H-elempp!=NULL)&(eq(str,H-elempp-name)=-1) pp=collision(p,c);if(H-elempp!=NULL&eq(str,H-elempp-name)=1) coutn查找成功!n查找過程沖突次數(shù)為c以下是您需要要查找的信息:nn; cout姓 名:elempp-namen電話

24、號碼:elempp-teln聯(lián)系地址:elempp-addn;else coutn此人不存在,查找不成功!n;benGetTime();void benGetTime()SYSTEMTIME sys; GetLocalTime( &sys ); coutsys.wYearsys.wMonthsys.wDaysys.wHoursys.wMinutesys.wSecondsys.wMilliseconds; void CreateHash2(HashTable* H,Record* a)/建表,以電話號碼為關(guān)鍵字, benGetTime();int i,p=-1,c,pp; for(i=0;iel

25、empp!=NULL) pp=collision(p,c); if(pp0) cout第i+1elempp=&(ai); /求得哈希地址,將信息存入 H-count+; cout第i+1個記錄沖突次數(shù)為c。n;/需要顯示沖突次數(shù)時輸出coutn建表完成!n此哈希表容量為HASHSIZE,當(dāng)前表內(nèi)存儲的記錄個數(shù)為count.n;benGetTime();void SearchHash2(HashTable* H,int &c)/在通訊錄里查找電話號碼關(guān)鍵字,若查找成功,顯示信息benGetTime();NA tele;couttele;int p,pp;p=Hash2(tele);pp=p;wh

26、ile(H-elempp!=NULL)&(eq(tele,H-elempp-tel)=-1) pp=collision(p,c);if(H-elempp!=NULL&eq(tele,H-elempp-tel)=1) coutn查找成功!n查找過程沖突次數(shù)為c以下是您需要要查找的信息:nn; cout姓 名:elempp-namen電話號碼:elempp-teln聯(lián)系地址:elempp-addn;else coutn此人不存在,查找不成功!n;benGetTime();void Save()FILE *fp;if(fp=fopen(c:test.txt, w)=NULL) printf(nERR

27、OR opening customet file);fclose(fp); int main(int argc, char* argv)int c,flag=1;HashTable *H;H=(HashTable*)malloc(LEN);for(int i=0;ielemi=NULL; H-size=HASHSIZE; H-count=0;Record aMAXSIZE;while (1) coutn ; coutn 歡迎使用電話號碼查找系統(tǒng) ; coutn ; coutn 哈希表的設(shè)計與實現(xiàn) ; coutn 【1】. 添加用戶信息 ; coutn 【2】. 讀取所有用戶信息 ; coutn

28、 【3】. 以姓名建立哈希表(再哈希法解決沖突) ; coutn 【4】. 以電話號碼建立哈希表(再哈希法解決沖突) ; coutn 【5】. 查找并顯示給定用戶名的記錄 ; coutn 【6】. 查找并顯示給定電話號碼的記錄 ; coutn 【7】. 清屏 ; coutn 【8】. 保存 ; coutn 【9】. 退出程序 ; coutn 溫馨提示: ; coutn .進行5操作前 請先輸出3 ; coutn .進行6操作前 請先輸出4 ; coutn ; coutn; cout; coutnum; switch(num) case 1: getin(a); break; case 2: S

29、howInformation(a); break; case 3: CreateHash1(H,a); /* 以姓名建立哈希表 */ break; case 4: CreateHash2(H,a); /* 以電話號碼建立哈希表 */ break; case 5: c=0; SearchHash1(H,c); break; case 6: c=0; SearchHash2(H,c); break; case 7: Cls(a); break; case 8: Save(); break; case 9: return 0; break; default: cout你輸錯了,請重新輸入!; cou

30、tn; system(pause); return 0;5 程序測試及運行結(jié)果說明由需求分析可知,散列表的設(shè)計與實現(xiàn)主要電話號碼查找功能,本程序已調(diào)試成功并實現(xiàn)了其功能,其運行結(jié)果如下:5.1 主菜單運行界面主菜單運行界面如圖.所示:圖5.1 主菜單運行界面5.2 各項功能測試5.2.1用戶信息錄入用戶信息錄入如圖5.2:圖5.2用戶信息錄入5.2.2 沖突解決沖突解決界面如圖5.3: 圖5.3 沖突解決5.2.3 用戶查找用戶查找界面如圖5.4:圖5.4 用戶查找總 結(jié)數(shù)據(jù)結(jié)構(gòu)的課程設(shè)計是大學(xué)時期第二個專業(yè)課的課程設(shè)計而數(shù)據(jù)結(jié)構(gòu)這門課也是本學(xué)期的一門專業(yè)課 經(jīng)過一個學(xué)期對數(shù)據(jù)結(jié)構(gòu)的學(xué)習(xí) 應(yīng)該

31、說對這門課只有初步的認(rèn)識掌握的并不是那么牢固。不過學(xué)期末的課程設(shè)計又教會了我該如何簡單的去運用數(shù)據(jù)結(jié)構(gòu)去解決問題。數(shù)據(jù)結(jié)構(gòu)的算法和之前學(xué)習(xí)的 c 語言有著一些的區(qū)別在設(shè)計中不能一味的去用原來的 c 語言去實現(xiàn)算法和函數(shù)。 設(shè)計時可以為程序定義全局變量也可以為程序定義局部變量全局變量可以讓程序看起來比較簡潔局部變量雖說比較繁瑣但是易懂且避免了一些不必要的錯誤發(fā)生。 在本次課程設(shè)計中分別用到了指針和引用兩種不同的方式來設(shè)計程序兩者各有利弊但最終選擇指針作為最后版本所用到的。這一次我選擇的課程設(shè)計題目是散列表的設(shè)計和查找可以說經(jīng)過一個多星期設(shè)計不管是通過自己的努力、 查資料還是詢問別人該如何做都是讓我更加熟悉這

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論