


下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、國(guó)脈信息學(xué)院(程序設(shè)計(jì)類課程) 實(shí)驗(yàn)報(bào)告課程名稱:算法與數(shù)據(jù)結(jié)構(gòu)姓名:系:張三計(jì)算機(jī)科學(xué)與技術(shù)專 業(yè):年 級(jí):學(xué) 號(hào):指導(dǎo)教師:李小林職稱:副教授2012年11 月日實(shí)驗(yàn)項(xiàng)目列表序號(hào)實(shí)驗(yàn)項(xiàng)目名稱成績(jī)指導(dǎo)教師1第七章檢索及基本算法23456789101112福建農(nóng)林大學(xué)計(jì)算機(jī)與信息學(xué)院實(shí)驗(yàn)報(bào)告系:計(jì)算機(jī)科學(xué)與技術(shù)專業(yè):年級(jí):姓名:_三學(xué)號(hào):實(shí)驗(yàn)室號(hào)計(jì)算機(jī)號(hào)93實(shí)驗(yàn)時(shí)間:201261指導(dǎo)教師簽字: 成績(jī):實(shí)驗(yàn)七檢索一、實(shí)驗(yàn)?zāi)康暮鸵?) 掌握檢索的不同方法,并能用高級(jí)語(yǔ)言實(shí)現(xiàn)檢索算法。2) 熟練掌握順序表和有序表的檢索方法,以及靜態(tài)檢索樹的構(gòu)造方法 和檢索算法,理解靜態(tài)檢索樹的折半檢索方法。3)
2、熟練掌握二叉排序樹的構(gòu)造和檢索方法。4) 熟悉各種存儲(chǔ)結(jié)構(gòu)的特征以及如何應(yīng)用樹結(jié)構(gòu)解決具體問(wèn)題。二、實(shí)驗(yàn)內(nèi)容和原理實(shí)驗(yàn)內(nèi)容:1) 編程實(shí)現(xiàn)在二叉檢索樹中刪除一個(gè)結(jié)點(diǎn)的算法。2) 編程實(shí)現(xiàn)Fibonacci檢索算法。實(shí)驗(yàn)原理:1)構(gòu)造排序樹,每輸入一個(gè)數(shù)就進(jìn)行排序,選擇插入的結(jié)點(diǎn),刪除結(jié)點(diǎn), 沒(méi)刪除一個(gè)節(jié)點(diǎn)就返回到構(gòu)造排序樹的方法。2) Fibonacci 數(shù)的定義為 fO=O,f1=1,fi二f(i-1)+f(i-2)(i> 2)。由此得Fibonacci 數(shù)列為 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144,設(shè)數(shù)組F中元素按關(guān)鍵字值從小到大順
3、序排列,并假定元素個(gè)數(shù)n比某個(gè)Fibonacci樹fi小1,即n=fi-1。第一次用待查關(guān)鍵字k與Ff (i-1 ), 若 k=Ff(i-1),Key 若 k<Ff(i-1),Key 長(zhǎng)度為f(i-1)。 若 k>Ff(i-1),KeyKey比較,其算法描述如下:,貝葉僉索成功,F(xiàn)f(i-1) 為k所在記錄。,則下一次的檢索范圍為下標(biāo)1到f(i-1),序列,則下一次的檢索范圍為下標(biāo)f(i+1)+1到fi-1 :序列長(zhǎng)度為(fi-1 ) - (f(i-1)+1)+1= fi-f(i-1)- 1=f(i-2)-1設(shè)F是順序存儲(chǔ)的線性表且滿足F1 , key<F2 , key<
4、;-< Fnkey,k是已知的關(guān)鍵字值,在F中檢索關(guān)鍵字值為k的記錄。若找到返回 其下標(biāo)值,否則返回0.三、實(shí)驗(yàn)環(huán)境Win dows XP 系統(tǒng)visual C+6.0四、算法描述及實(shí)驗(yàn)步驟實(shí)驗(yàn)習(xí)題一:#include "stdio.h"#include "malloc.h"struct BTnodeint data;struct BT node *lchild,*rchild;*root;typedef struct BTnode Node,*Nodep;void createtree( int data)Node *no de,*p,*q;no
5、de=(Nodep)malloc( sizeof (Node);no de->data=data;no de->lchild=0;no de->rchild=0;if (root=0)root=no de;return ;elsep=root;while (p!=0)if (data<p->data)q=p;p=p->lchild;if (p=0)q->lchild=node;elseif (data>p->data)q=p; p=p->rchild;if (p=0) q->rchild=no de;elsebreak;void
6、 showtree( struct BTnode *proot, struct BTnode *m, int space) int i;char b;if (proot!=0)for (i=1;i<=space-3;i+)printf("");if (space-3>=0)printf( "->");if (proot=root)printf( "%dn" ,proot->data);elseif (m->data>proot->data)b='L'elseb='R
7、39;printf( "%d (%c)" ,proot->data,b);printf( "n");m=proot;showtree(proot->lchild,m,space+6);showtree(proot->rchild,m,space+6);Nodep deletep(Node *p)Node *q,*t;t=p;if (p->lchild!=O)p=p->lchild;q=p; while (p->rchild!=O) q=p; p=p->rchild;if (p=q) p->rchild=t-
8、>rchild; free(t); return (p);if (p->lchild!=O) q->rchild=p->lchild; elseq->rchild=O;p->lchild=t->lchild; p->rchild=t->rchild; free(t); return (p);elseif (p->rchild!=O)p=p->rchild;q=p;while (p->lchild!=O) q=p;p=p->lchild;if (p=q) p->lchild=t->lchild; free(
9、t);return (p);if (p->rchild!=O) q->lchild=p->rchild; elseq->lchild=O;p->rchild=t->rchild;p->lchild=t->lchild;free(t);return (p);elsefree(p);return (0);Nodep deleteBTnode( int x)Node *p=root,*q;while (p!=0)q=p;if (p->data>x)if (p->lchild)p=p->lchild;elsebreak;elsei
10、f (p->data<x)if (p->rchild)p=p->rchild;elsebreak;if (p->data=x)break;if (p=root)&&(p->data=x)root=deletep(p);elseif (p=q->lchild)&&(p->data=x)q->lchild=deletep(p);elseif (p=q->rchild)&&(p->data=x)q->rchild=deletep(p);elseif (p->data!=x)p
11、ri ntf("ca n not found the data you want to delete,pleasecheck it!n");return 0;return root;int main()char ch;int data;printf( "En ter 'c' create tree,E nter 'd' delete a no de:");scanf( "%c",&ch);getchar();root=0;while (ch= 'c' |ch= 'd
12、9;)if (ch='c')pri ntf("please in put the key:" );scanf( "%d",&data);getchar();createtree(data); showtree(root,0,0);elsepri ntf("please in put the key of the node you want del:");scanf( "%d",&data);getchar();if (deleteBTnode(data)showtree(root,0
13、,0);printf( "En ter 'c' create tree,E nter 'd' delete a no de:");scanf( "%c",&ch);return 0;實(shí)驗(yàn)習(xí)題二:#i nclude "stdio.h"typedef int keytype;typedef int datatype;typedef struct nodeint key;rectype;int fibonacci(int n)if (n=0) return 0;elseif (n=1) return
14、1;elsereturn fibonacci(n-1)+fibonacci(n-2); void printData(rectype R, int n)int i;for (i=1; i<=n; i+)printf( "%5d",Ri.key);if (i%8=0) printf("n" ); printf( "n");int fibsearch(rectype R,keytype K, int n)int m,i,p,q,t;for (m=0;fibonacci(m)<=(n+1);m+) m-;i = fibon ac
15、ci(m-1);p = fibon acci(m-2);q = fibon acci(m-3);while (i>=0 && i<=n)if (K = Ri.key)return i; else if (K < Ri.key)i = i-q;t = p;p = q;q = t-q; else if (K > Ri.key) i=i+q; p=p-q; q=q-p;return 0;void mai n()int m,i,k,n;rectype R20;printf( "En ter k nu m:");scanf("%d&q
16、uot;,&k);printf("en ter R20:");for (i=1;i<=20;i+)scanf( "%d",&Ri.key);prin tData(R,20);m=fibsearch(R,k,20);if (m = 0)printf( "Not fou nd!n");elseprintf( "The Key has bee n found at R%dn",m);getchar();五、調(diào)試過(guò)程1)構(gòu)建二叉排序樹:刪除二叉樹的節(jié)點(diǎn):已直動(dòng)生咸-頃目:數(shù)搦結(jié)構(gòu)試驗(yàn)配畫.De lug
17、 liriSZ匕成啟動(dòng)時(shí)間対2011/8l&:22:34cIni 11 Oi z.eBuildSt 自t口s :正在創(chuàng)律 b4£ ®el-ag數(shù)據(jù)結(jié)構(gòu)|克鯊一 un£ w" s; wfullmii 1 d ",因?yàn)橐艳蠥lwayECTeaiLeoICornjile;靱據(jù)詰掏試驗(yàn).CPP皿紐MVhpl仏瞅麻期s結(jié)構(gòu)試聆城據(jù)結(jié)構(gòu)試驗(yàn)邇據(jù)結(jié)構(gòu)試騎.叱代C20C39 "鹼汕:不昱f 皿"的爾員 c:結(jié)枸試噓I勤掘結(jié)枸試噓I數(shù)捐結(jié)枸試髓.占“陌:參見(jiàn)H 的聲他:皿叱如仏kt環(huán)頻辭構(gòu)數(shù)堆結(jié)構(gòu)i溜數(shù)堀結(jié)構(gòu)i謹(jǐn)® 住廠:e
18、rror C2K39: -key11 :不曇f 皿"的成員 二狂址to訕救拐結(jié)枸試驗(yàn)燉協(xié)結(jié)枸試驗(yàn)燉瞬枸試騷一 TPCS):參見(jiàn)的聲明_;也曲11班仏15伽1數(shù)據(jù)結(jié)構(gòu)1沆驗(yàn)1數(shù)據(jù)結(jié)構(gòu)I丑驗(yàn)燼I據(jù)結(jié)構(gòu)加:error C2Q39: "key"不是的感員 =;usershpdeskt&p數(shù)損結(jié)枸試盛5數(shù)捐括枸試誡'數(shù)1S結(jié)枸試驗(yàn)山丹;善見(jiàn)*4寸'的聲朋八11 wNhp也Ekt °F、數(shù)據(jù)結(jié)構(gòu)試怒數(shù)據(jù)唐堿罐燼塘結(jié)暢i罐Cfp(36)- *rror 02030: kay"不是、皿砂的咸員 c Aus*rshpUftiktopSffi®W試胚燼捐括枸試唸'數(shù)揭站枸試驗(yàn)"PP:參見(jiàn)"朕”的聲明:皿叱血也皿低曦?fù)?jù)結(jié)構(gòu)試血哦據(jù)結(jié)稱亦I數(shù)垢結(jié)爾試驗(yàn)注:wrwr C2tX3g:叫甲不是皿利的粛員 c! user3hpdesktoptiti£tlE結(jié)箱i式婭I教吉慚式猛” cpp國(guó):參閃0捷"的靑明,用時(shí)間 00:00
溫馨提示
- 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ù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 家具行業(yè)用戶心理分析方法試題及答案
- 學(xué)習(xí)物理中的重要知識(shí)要素試題及答案
- 班組長(zhǎng)述職報(bào)告范文簡(jiǎn)單
- 施工安全責(zé)任明確化的試題及答案
- 組胚肌組織試題及答案
- 茶葉化學(xué)試題及答案解析
- 新能源汽車對(duì)于社會(huì)經(jīng)濟(jì)的貢獻(xiàn)試題及答案
- 自信游戲測(cè)試題及答案
- 新能源汽車的創(chuàng)新驅(qū)動(dòng)發(fā)展試題及答案
- 暑假長(zhǎng)高測(cè)試題及答案
- 安全風(fēng)險(xiǎn)及控制措施清單
- KTV工程部崗位職責(zé)
- 社會(huì)科學(xué)處橫向課題合同書
- 常州施工招標(biāo)開標(biāo)清標(biāo)評(píng)標(biāo)報(bào)告
- 第十五屆運(yùn)動(dòng)會(huì)場(chǎng)館醫(yī)療保障工作方案
- 生理衛(wèi)生教學(xué)課件青春期男生性教育走向成熟
- 體外診斷試劑標(biāo)準(zhǔn)品、校準(zhǔn)品、質(zhì)控品
- GB/T 3452.4-2020液壓氣動(dòng)用O形橡膠密封圈第4部分:抗擠壓環(huán)(擋環(huán))
- 王力宏-緣分一道橋-歌詞
- 高校電子課件:現(xiàn)代管理學(xué)基礎(chǔ)(第三版)
- 《藥物學(xué)》課程教學(xué)大綱
評(píng)論
0/150
提交評(píng)論