


下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、國脈信息學(xué)院(程序設(shè)計(jì)類課程) 實(shí)驗(yàn)報(bào)告課程名稱:算法與數(shù)據(jù)結(jié)構(gòu)姓名:系:張三計(jì)算機(jī)科學(xué)與技術(shù)專 業(yè):年 級:學(xué) 號:指導(dǎo)教師:李小林職稱:副教授2012年11 月日實(shí)驗(yàn)項(xiàng)目列表序號實(shí)驗(yàn)項(xiàng)目名稱成績指導(dǎo)教師1第七章檢索及基本算法23456789101112福建農(nóng)林大學(xué)計(jì)算機(jī)與信息學(xué)院實(shí)驗(yàn)報(bào)告系:計(jì)算機(jī)科學(xué)與技術(shù)專業(yè):年級:姓名:_三學(xué)號:實(shí)驗(yàn)室號計(jì)算機(jī)號93實(shí)驗(yàn)時(shí)間:201261指導(dǎo)教師簽字: 成績:實(shí)驗(yàn)七檢索一、實(shí)驗(yàn)?zāi)康暮鸵?) 掌握檢索的不同方法,并能用高級語言實(shí)現(xiàn)檢索算法。2) 熟練掌握順序表和有序表的檢索方法,以及靜態(tài)檢索樹的構(gòu)造方法 和檢索算法,理解靜態(tài)檢索樹的折半檢索方法。3)
2、熟練掌握二叉排序樹的構(gòu)造和檢索方法。4) 熟悉各種存儲結(jié)構(gòu)的特征以及如何應(yīng)用樹結(jié)構(gòu)解決具體問題。二、實(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), 沒刪除一個(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 長度為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 :序列長度為(fi-1 ) - (f(i-1)+1)+1= fi-f(i-1)- 1=f(i-2)-1設(shè)F是順序存儲的線性表且滿足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)試過程1)構(gòu)建二叉排序樹:刪除二叉樹的節(jié)點(diǎn):已直動生咸-頃目:數(shù)搦結(jié)構(gòu)試驗(yàn)配畫.De lug
17、 liriSZ匕成啟動時(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é)枸試髓.占“陌:參見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):參見的聲明_;也曲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)山丹;善見*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:參見"朕”的聲明:皿叱血也皿低曦?fù)?jù)結(jié)構(gòu)試血哦據(jù)結(jié)稱亦I數(shù)垢結(jié)爾試驗(yàn)注:wrwr C2tX3g:叫甲不是皿利的粛員 c! user3hpdesktoptiti£tlE結(jié)箱i式婭I教吉慚式猛” cpp國:參閃0捷"的靑明,用時(shí)間 00:00
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 江西省贛州市六校2024-2025學(xué)年高三質(zhì)量監(jiān)測(二)物理試題含解析
- 四川三河職業(yè)學(xué)院《材料應(yīng)用設(shè)計(jì)實(shí)訓(xùn)(1)》2023-2024學(xué)年第二學(xué)期期末試卷
- 遼寧省大連市第七十六中學(xué)2025年初三模擬考試(一)化學(xué)試題文試卷含解析
- 江蘇省蘇州市工業(yè)園區(qū)重點(diǎn)達(dá)標(biāo)名校2024-2025學(xué)年中考第二次模擬考試化學(xué)試題理試題含解析
- 山東省威海市文登市2024-2025學(xué)年數(shù)學(xué)三下期末檢測試題含解析
- 內(nèi)蒙古赤峰市2024-2025學(xué)年下學(xué)期高三化學(xué)試題第二次適應(yīng)性測試試卷含解析
- 昆山登云科技職業(yè)學(xué)院《工筆人物創(chuàng)作與表現(xiàn)》2023-2024學(xué)年第一學(xué)期期末試卷
- 武漢生物工程學(xué)院《林業(yè)專業(yè)外語》2023-2024學(xué)年第二學(xué)期期末試卷
- 四川省南充市西充縣2025年四下數(shù)學(xué)期末綜合測試試題含解析
- 二零二五土地轉(zhuǎn)讓合同書范例
- 2025陜煤集團(tuán)榆林化學(xué)有限責(zé)任公司招聘(137人)筆試參考題庫附帶答案詳解
- 衢州2025年浙江衢州龍游縣綜合事業(yè)單位招聘43人筆試歷年參考題庫附帶答案詳解
- 測繪成果質(zhì)量管理制度(一)
- 小學(xué)防碘缺乏課件
- 學(xué)習(xí)解讀《關(guān)于進(jìn)一步強(qiáng)化食品安全全鏈條監(jiān)管的意見》課件(2025年3月)
- 支氣管哮喘防治指南(2024年版)解讀
- 北京海淀區(qū)2023-2024學(xué)年八年級下學(xué)期期中考試物理試題(解析版)
- 2025年陪審員考試題及答案
- 居室空間設(shè)計(jì) 課件 項(xiàng)目八廚房空間設(shè)計(jì)
- 人教版小學(xué)五年級語文下冊2024-2025學(xué)年度第二學(xué)期第五單元質(zhì)量檢測試卷含參考答案
- 2025年演出經(jīng)紀(jì)人《思想政治與法律基礎(chǔ)》考前點(diǎn)題卷一
評論
0/150
提交評論