版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
文檔編碼:CQ2Z1N8L1M3——HO5P5P7K10X4——ZM4Q6X9Z6V1國(guó)脈信息學(xué)院
(程序設(shè)計(jì)類課程)
試驗(yàn)報(bào)告課程名稱:算法與數(shù)據(jù)結(jié)構(gòu)日姓名:張三系:運(yùn)算機(jī)科學(xué)與技術(shù)專業(yè):李小林年級(jí):學(xué)號(hào):指導(dǎo)老師:職稱:副教授2022年11月試驗(yàn)項(xiàng)目列表序號(hào)試驗(yàn)項(xiàng)目名稱成果指導(dǎo)老師1第七章檢索及基本算法2
34
56
7 8
9
10
11
12
福建農(nóng)林高校運(yùn)算機(jī)與信息學(xué)院試驗(yàn)報(bào)告系:運(yùn)算機(jī)科學(xué)與技術(shù)專業(yè):年級(jí):成果:姓名:張三學(xué)號(hào):試驗(yàn)室號(hào)____運(yùn)算機(jī)號(hào)93試驗(yàn)時(shí)間:2022.6.1指導(dǎo)老師簽字:試驗(yàn)七檢索一、試驗(yàn)?zāi)康暮鸵?/p>
1〕 把握檢索的不同方法,并能用高級(jí)語(yǔ)言實(shí)現(xiàn)檢索算法;2〕 嫻熟把握次序表和有序表的檢索方法,以及靜態(tài)檢索樹的構(gòu)造方法和檢索算法,懂得靜態(tài)檢索樹的折半檢索方法;3〕 嫻熟把握二叉排序樹的構(gòu)造和檢索方法;4〕 熟識(shí)各種儲(chǔ)備結(jié)構(gòu)的特點(diǎn)以及如何應(yīng)用樹結(jié)構(gòu)解決具體問題;二、試驗(yàn)內(nèi)容和原理試驗(yàn)內(nèi)容:1〕編程實(shí)現(xiàn)在二叉檢索樹中刪除一個(gè)結(jié)點(diǎn)的算法;2〕編程實(shí)現(xiàn)Fibonacci 檢索算法;試驗(yàn)原理:1)構(gòu)造排序樹,每輸入一個(gè)數(shù)就進(jìn)行排序,選擇插入的結(jié)點(diǎn),刪除結(jié)點(diǎn),沒刪除一個(gè)節(jié)點(diǎn)就返回到構(gòu)造排序樹的方法;2)Fibonacci 數(shù)的定義為 f0=0,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)鍵字值從小到大次序排列,并假定元素個(gè)數(shù) n比某個(gè)Fibonacci 樹fi 小1,即n=fi-1;第一次用待查關(guān)鍵字 k與F[f(i-1)],Key比較,其算法描述 如下:①如k=F[f〔i-1〕],Key ,就檢索成功,F[f〔i-1〕] 為k所在記錄;②如k<F[f〔i-1〕],Key ,就下一次的檢索范疇為下標(biāo) 1到f〔i-1〕 ,序列長(zhǎng)度為f〔i-1〕 ;③如k>F[f〔i-1〕],Key ,就下一次的檢索范疇為下標(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ǔ)備的線性表且中意 F[1],key≤F[2],key≤?≤F[n];key,k是已知的關(guān)鍵字值,在 F中檢索關(guān)鍵字值為 k的記錄;如找到返回其下標(biāo)值,否就返回0.三、試驗(yàn)環(huán)境WindowsXP系統(tǒng)visualc++6.0四、算法描述及試驗(yàn)步驟試驗(yàn)習(xí)題一:#include"stdio.h"
#include"malloc.h"
structBTnode
{
intdata;
structBTnode*lchild,*rchild;
}*root;
typedef
structBTnodeNode,*Nodep;voidcreatetree〔 intdata〕
{
Node*node,*p,*q;
node=〔Nodep〕malloc〔sizeof〔Node〕〕;
node->data=data;
node->lchild=0;
node->rchild=0;
if〔root==0〕
{
root=node;
return;
}
else
{
p=root;
while〔p.=0〕
{
if〔data<p->data〕
{
q=p;
p=p->lchild;
if〔p==0〕
q->lchild=node;
}
else
if〔data>p->data〕{q=p; p=p->rchild;
if〔p==0〕
q->rchild=node;
}
else}break;}}
voidshowtree〔structBTnode*proot,{
inti;
charb;
if〔proot.=0〕
{for〔i=1;i<=space-3;i++〕 printf〔 ""〕;
if〔space-3>=0〕printf〔 "---->" 〕;
if〔proot==root〕structBTnode*m,intspace〕 printf〔 "%d\n",proot->data〕;
else
{
if〔m->data>proot->data〕
b='L';
else
b='R';
printf〔 "%d〔%c〕",proot->data,b〕; printf〔 "\n"〕;
}
m=proot;
showtree〔proot->lchild,m,space+6〕; showtree〔proot->rchild,m,space+6〕; }
}
Nodepdeletep〔Node*p〕
{
Node*q,*t;
t=p;
if〔p->lchild.=0〕
{
p=p->lchild; q=p;
while〔p->rchild.=0〕
{
q=p;
p=p->rchild;
}
if〔p==q〕{p->rchild=t->rchild;free〔t〕;}return〔p〕; if〔p->lchild.=0〕
q->rchild=p->lchild;
else
q->rchild=0;
p->lchild=t->lchild;
p->rchild=t->rchild;
free〔t〕;
return〔p〕;
}
else
if〔p->rchild.=0〕
{
p=p->rchild;
q=p;
while〔p->lchild.=0〕
{
q=p;
p=p->lchild;
}
if〔p==q〕
{
p->lchild=t->lchild;
free〔t〕;
return〔p〕;
}
if〔p->rchild.=0〕
q->lchild=p->rchild;
else
q->lchild=0;
p->rchild=t->rchild;
p->lchild=t->lchild;
free〔t〕;}return〔p〕;else{free〔p〕; return〔0〕;
}
}
NodepdeleteBTnode〔intx〕
{
Node*p=root,*q;
while〔p.=0〕
{
q=p;
if〔p->data>x〕
if〔p->lchild〕
p=p->lchild;
else
break;
else
if〔p->data<x〕
if〔p->rchild〕
p=p->rchild;
else
break;
if〔p->data==x〕
break;
}
if〔〔p==root〕&&〔p->data==x〕〕
root=deletep〔p〕;
else
if〔〔p==q->lchild〕&&〔p->data==x〕〕
q->lchild=deletep〔p〕;
else
if〔〔p==q->rchild〕&&〔p->data==x〕〕
q->rchild=deletep〔p〕;
else
if〔p->data.=x〕
{printf〔 "cannotfoundthedatayouwanttodelete,pleasecheck it.\n" 〕;
return0;
}
returnroot;
}intmain〔〕
{charch;
intdata;printf〔"Enter'c'createtree,Enter'd'deleteanode:"〕;scanf〔"%c",&ch〕;getchar〔〕;
root=0;
while〔ch=='c'||ch=='d'〕
{if〔ch=='c'〕{printf〔"pleaseinputthekey:"〕; scanf〔"%d",&data〕;
getchar〔〕;
createtree〔data〕;
showtree〔root,0,0〕;
}
else{printf〔"pleaseinputthekeyofthenodeyouwantdel:"〕;scanf〔"%d",&data〕;
getchar〔〕;
if〔deleteBTnode〔data〕〕}showtree〔root,0,0〕;〕;printf〔"Enter'c'createtree,Enter'd'deleteanode:" scanf〔"%c",&ch〕;
}
return0;
}試驗(yàn)習(xí)題二:#include "stdio.h"
typedef intkeytype;
typedef intdatatype;
typedef structnode
{
intkey;
}rectype;
intfibonacci〔 intn〕
{
if〔n==0〕return0;
else
if〔n==1〕return1;
else
returnfibonacci〔n-1〕+fibonacci〔n-2〕;}voidprintData〔rectypeR[], intn〕{inti;for〔i=1;i<=n;i++〕{intn〕printf〔"%5d",R[i].key〕;if〔i%8==0〕printf〔"\n"〕;}printf〔"\n"〕;}
intfibsearch〔rectypeR[],keytypeK,{
intm,i,p,q,t;
for〔m=0;fibonacci〔m〕<=〔n+1〕;m++〕{}
m--;
i=fibonacci〔m-1〕;
p=fibonacci〔m-2〕;
q=fibonacci〔m-3〕;
while〔i>=0&&i<=n〕{if〔K==R[i].key〕{elsereturni;}
if〔K<R[i].key〕{
i=i-q;
t=p;
p=q;
q=t-q;}else{if〔K>R[i].key〕 i=i+q;
p=p-q;
q=q-p;
}
}
return0;
}
voidmain〔〕{intm,i,k,n;rectypeR[20];printf〔"Enterknum:"〕;scanf〔"%d",&k〕;〕;printf〔"enterR[20]:"for〔i=1;i<=20;i++〕{scanf〔"%d",&R[i].key〕; }
printData〔R,20〕;
m=fibsearch〔R,k,20〕;
if〔m==0〕
{}printf〔"Notfound.\n"〕;elseprintf〔"TheKeyhasbeenfoundatR[%d]\n",m〕;getchar〔〕;}五、調(diào)試過(guò)程1〕構(gòu)建二叉排序
溫馨提示
- 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度民辦學(xué)校圖書資源采購(gòu)與借閱服務(wù)合同范本3篇
- 二零二五年度無(wú)線通信塔架建設(shè)施工合同
- 2025年臍橙果肥國(guó)際市場(chǎng)拓展合作合同4篇
- 2025年度二手房買賣合同稅務(wù)籌劃范本
- 二零二五年度土地承包經(jīng)營(yíng)權(quán)租賃管理服務(wù)合同
- 二零二五年度文化藝術(shù)交流活動(dòng)組織合同
- 二零二五年度天然青貯飼料原料采購(gòu)與倉(cāng)儲(chǔ)管理合同
- 二零二五年度品牌代理授權(quán)合同(含保密條款)
- 二零二五年度水塘生態(tài)環(huán)境保護(hù)與修復(fù)工程合同
- 二零二五版鋁單板裝飾材料采購(gòu)合同4篇
- 2024年社區(qū)警務(wù)規(guī)范考試題庫(kù)
- 2024年食用牛脂項(xiàng)目可行性研究報(bào)告
- 2024年全國(guó)各地中考試題分類匯編(一):現(xiàn)代文閱讀含答案
- 2024-2030年中國(guó)戶外音箱行業(yè)市場(chǎng)發(fā)展趨勢(shì)與前景展望戰(zhàn)略分析報(bào)告
- GB/T 30306-2024家用和類似用途飲用水處理濾芯
- 家務(wù)分工與責(zé)任保證書
- 消防安全隱患等級(jí)
- 溫室氣體(二氧化碳和甲烷)走航監(jiān)測(cè)技術(shù)規(guī)范
- 華為員工股權(quán)激勵(lì)方案
- 部編版一年級(jí)語(yǔ)文下冊(cè)第一單元大單元教學(xué)設(shè)計(jì)
- 《保單檢視專題》課件
評(píng)論
0/150
提交評(píng)論