數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告全集_第1頁
數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告全集_第2頁
數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告全集_第3頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告全集實(shí)驗(yàn)一線性表基本操作和簡單程序1. 實(shí)驗(yàn)?zāi)康?1 )掌握使用Visual C+ 上機(jī)調(diào)試程序的基本方法;(2) 掌握線性表的基本操作:初始化、插入、刪除、取數(shù)據(jù)元素等運(yùn)算在順序存儲(chǔ)結(jié)構(gòu)和 鏈表存儲(chǔ)結(jié)構(gòu)上的程序設(shè)計(jì)方法。2. 實(shí)驗(yàn)要求(1) 認(rèn)真閱讀和掌握和本實(shí)驗(yàn)相關(guān)的教材內(nèi)容。(2) 認(rèn)真閱讀和掌握本章相關(guān)內(nèi)容的程序。(3) 上機(jī)運(yùn)行程序。(4) 保存和打印出程序的運(yùn)行結(jié)果,并結(jié)合程序進(jìn)行分析。(5) 按照你對(duì)線性表的操作需要,重新改寫主程序并運(yùn)行,打印出文件清單和運(yùn)行結(jié)果實(shí)驗(yàn)代碼:1)頭文件模塊#i nclude > 驗(yàn)?zāi)康恼莆枕樞驐5幕静僮鳎撼跏蓟瘲?、判??辗瘛?/p>

2、入棧、出棧、取棧頂數(shù)據(jù)元素等運(yùn)算以及程 序?qū)崿F(xiàn)方法。2. 實(shí)驗(yàn)要求(1) 認(rèn)真閱讀和掌握和本實(shí)驗(yàn)相關(guān)的教材內(nèi)容。(2) 分析問題的要求,編寫和調(diào)試完成程序。(3) 保存和打印出程序的運(yùn)行結(jié)果,并分析程序的運(yùn)行結(jié)果。3. 實(shí)驗(yàn)內(nèi)容利用棧的基本操作實(shí)現(xiàn)一個(gè)判斷算術(shù)表達(dá)式中包含圓括號(hào)、方括號(hào)是否正確配對(duì)的程 序。具體完成如下:(1) 定義棧的順序存取結(jié)構(gòu)。(2) 分別定義順序棧的基本操作(初始化棧、判??辗瘛⑷霔?、出棧等)。(3) 定義一個(gè)函數(shù)用來判斷算術(shù)表達(dá)式中包含圓括號(hào)、方括號(hào)是否正確配對(duì)。其中,括號(hào) 配對(duì)共有四種情況: 左右括號(hào)配對(duì)次序不正確;右括號(hào)多于左括號(hào);左括號(hào)多于右括號(hào);左右括號(hào)匹配正

3、確。(4) 設(shè)計(jì)一個(gè)測試主函數(shù)進(jìn)行測試。(5) 對(duì)程序的運(yùn)行結(jié)果進(jìn)行分析。實(shí)驗(yàn)代碼:#i nclude < >#defi ne MaxSize 100typedef structint dataMaxSize;int top;SqStack;void In itStack(SqStack *st)驗(yàn)?zāi)康?1) 進(jìn)一步掌握指針變量的用途和程序設(shè)計(jì)方法。(2) 掌握二叉樹的結(jié)構(gòu)特征,以及鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的特點(diǎn)及程序設(shè)計(jì)方法。(3) 掌握構(gòu)造二叉樹的基本方法。(4) 掌握二叉樹遍歷算法的設(shè)計(jì)方法。3. 實(shí)驗(yàn)要求(1 )認(rèn)真閱讀和掌握和本實(shí)驗(yàn)相關(guān)的教材內(nèi)容。(2) 掌握一個(gè)實(shí)際二叉樹的創(chuàng)建方法

4、。(3) 掌握二叉鏈存儲(chǔ)結(jié)構(gòu)下二叉樹操作的設(shè)計(jì)方法和遍歷操作設(shè)計(jì)方法。4. 實(shí)驗(yàn)內(nèi)容(1 )定義二叉鏈存儲(chǔ)結(jié)構(gòu)。(2 )設(shè)計(jì)二叉樹的基本操作(初始化一棵帶頭結(jié)點(diǎn)的二叉樹、左結(jié)點(diǎn)插入、右結(jié)點(diǎn)插入、 中序遍歷二叉樹等)。(3 )按照建立一棵實(shí)際二叉樹的操作需要,編寫建立二叉樹、遍歷二叉樹的函數(shù)。(4) 編寫測試主函數(shù)并上機(jī)運(yùn)行。打印出運(yùn)行結(jié)果,并結(jié)合程序運(yùn)行結(jié)果進(jìn)行分析。 實(shí)驗(yàn)代碼:#include<>typedef struct bitnodechar data;struct bitnode *lchild,*rchild; binode,*bitree;void createbit

5、ree(bitree *T)char ch;cin>>ch;if(ch='0')(*T)=NULL;else(*T)=new bitnode;(*T)->data二ch;createbitree(&(*T)->lchild); createbitree(&(*T)->rchild);void inorderout(bitree T)if(T)inorderout(T->lchild); coutv<T->datavvendl; inorderout(T->rchild);void postorder(bitr

6、ee T)if(T)postorder(T->lchild); postorder(T->rchild); coutv<T->datavvendl;int countleaf(bitree bt)if(!bt)return 0;if(bt ->lchild=NULL&&bt- >rchild=NULL)return 1;return(countleaf(bt->lchild)+countleaf(bt->rchild);void main()bitree bt;createbitree (&bt);inorderout(b

7、t);coutvv" "vvendl;postorder(bt);countleaf(bt);實(shí)驗(yàn)五建立有序表并進(jìn)行折半查找1. 實(shí)驗(yàn)?zāi)康恼莆者f歸算法求解問題的基本思想和程序?qū)崿F(xiàn)方法。2 實(shí)驗(yàn)要求(1 )認(rèn)真閱讀和掌握本實(shí)驗(yàn)的算法思想。(2 )編寫和調(diào)試完成程序。(3)保存和打印程序的運(yùn)行結(jié)果,并對(duì)運(yùn)行結(jié)果進(jìn)行分析。3.實(shí)驗(yàn)內(nèi)容(1) 分析掌握折半查找算法思想,在此基礎(chǔ)上,設(shè)計(jì)出遞歸算法和循環(huán)結(jié)構(gòu)兩種實(shí)現(xiàn)方法 的折半查找函數(shù)。(2) 編寫程序?qū)崿F(xiàn):在保存于數(shù)組的1000個(gè)有序數(shù)據(jù)元素中查找數(shù)據(jù)元素x是否存在。數(shù)據(jù)元素x要包含兩種情況:一種是數(shù)據(jù)元素x包含在數(shù)組中;另一種是數(shù)

8、據(jù)元素 x不包含 在數(shù)組中(3) 數(shù)組中數(shù)據(jù)元素的有序化既可以初始賦值時(shí)實(shí)現(xiàn),也可以設(shè)計(jì)一個(gè)排序函數(shù)實(shí)現(xiàn)。(4) 根據(jù)兩種方法的實(shí)際運(yùn)行時(shí)間,進(jìn)行兩種方法時(shí)間效率的分析對(duì)比。 實(shí)驗(yàn)代碼:#in clude<>#in clude<>#defi ne MAX_LENGTH 100 typedef int KeyType;typedef structint key;ElemType;typedef structSSTable STey)ElemType elemMAX_LENGTH;return mid;elseif(key<mid.key)high = mid-1;e

9、lselow=mid+1;return 0;void mai n()int i,result;SSTable ST;KeyType key;prin tf("please in put len gth:");scan f("%d",&for(i=1;i<=;i+)prin tf("please in put :");scan f("%d", &i);prin tf("please in put keyword:");scan f("%d",&ke

10、y);result=Search_Bi n(ST,key);if(result=0)printf("Don't findn”);elseprintf("Find the key,the position is %dn”,result);實(shí)驗(yàn)結(jié)果:實(shí)驗(yàn)六建立一組記錄并進(jìn)行插入排序1. 實(shí)驗(yàn)?zāi)康模?)掌握插入排序算法的思想。(2)掌握順序隊(duì)列下插入排序算法的程序設(shè)計(jì)方法。2. 實(shí)驗(yàn)要求(1)認(rèn)真閱讀和掌握教材中插入排序算法的思想。(3)編寫基于順序隊(duì)列的插入排序排序算法并上機(jī)實(shí)現(xiàn)。3. 實(shí)驗(yàn)內(nèi)容(1)編寫基于順序隊(duì)列的插入排序函數(shù)。(2)設(shè)計(jì)一個(gè)測試主函數(shù),實(shí)現(xiàn)對(duì)基于順

11、序隊(duì)列結(jié)構(gòu)的插入排序算法的測試。(3)分析程序的運(yùn)行結(jié)果。實(shí)驗(yàn)代碼:#in clude<>#in clude<>#defi ne MAXSIZE 100typedef structint key;sortkey;typedef structsortkey elemMAXSIZE;int len gth;sortelem;void In sertSort(sortelem *p)int i,j;for(i=2;iv=p->le ngth;i+)if(p->elemi.key<p->elemi-1.key)/*小于時(shí),需將elemi插入有序表*/p-

12、>elem0.key=p->elemi.key; /*為統(tǒng)一算法設(shè)置監(jiān)測*/for(j=i-1;p->elem0.keyvp->elemj.key;j-)p->elemj+1.key=p->elemj.key;/*p->elemj+1.key=p->elem0.key; /*void mai n()sortelem *p;int i;int b6=45,23,54,6,4,46;p=(sortelem *)malloc(sizeof(sortelem);p->le ngth=0;for(i=1;i<7;i+)p->elemi.k

13、ey=bi-1;p->le ngth+;In sertSort(p);記錄后移*/插入到正確位置*/for(i=1;i<7;i+)printf("%d ”,p->elemi.key);system("pause");實(shí)驗(yàn)結(jié)果:實(shí)驗(yàn)七建立一組記錄并進(jìn)行快速排序1. 實(shí)驗(yàn)?zāi)康模?)掌握快速排序算法的思想。(2)掌握順序隊(duì)列下快速排序算法的程序設(shè)計(jì)方法。2. 實(shí)驗(yàn)要求(1)認(rèn)真閱讀和掌握教材中快速排序算法的思想。(3)編寫基于順序隊(duì)列的快速排序排序算法并上機(jī)實(shí)現(xiàn)。3. 實(shí)驗(yàn)內(nèi)容(1)編寫基于順序隊(duì)列的快速排序函數(shù)。(2) 設(shè)計(jì)一個(gè)測試主函數(shù),實(shí)現(xiàn)對(duì)基于

14、順序隊(duì)列結(jié)構(gòu)的快速排序算法的測試。(3) 分析程序的運(yùn)行結(jié)果。實(shí)驗(yàn)代碼:#in clude<>void quick_sort(i nt a,i nt low, int high)int i,j,pivot;if (low < high)pivot = alow;i = low;j = high;while (i < j)/從頂端開始比較值,如果小于標(biāo)準(zhǔn)值,停止while (i < j && aj >= pivot)j-;/將比pivot小的元素移到低端,下標(biāo)加加if (i < j)ai+ = aj/從底端開始比較值,如果大于標(biāo)準(zhǔn)值,停止while (i < j && ai <= pivot)/將比pivot大的元素移到頂端,下標(biāo)減減if (i < j)aj- = ai;/pivot移動(dòng)到最終位置ai = pivot;/對(duì)左區(qū)間進(jìn)行遞歸排序quick_sort(a, low, i-1);/對(duì)右區(qū)間進(jìn)行

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論