數(shù)據(jù)結構典型例題_第1頁
數(shù)據(jù)結構典型例題_第2頁
數(shù)據(jù)結構典型例題_第3頁
數(shù)據(jù)結構典型例題_第4頁
數(shù)據(jù)結構典型例題_第5頁
已閱讀5頁,還剩70頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 keytypeprekey=-32767;/全局變量,保存當前結點的中序前驅(qū)值,初值為最小整數(shù)intjudgeBST(bitree*bt)intbl,b2;if(bt=NULL)return1;b1=judgeBST(btlchild);if(bl=0llprekey=bt一data)return0;prekey=btdata;b2=judgeBST(btrchild);returnb2;(例1337)設計一個算法,利用折半查找算法在一個有序表中插入一個元素x,并要求保持表的有序性。解析:假設有序表r為遞增表,先在有序表r中利用折半查找算法查找值等于或小于x的結點,mid指向正好等于x的結點

2、或low指向正好大于x的結點,然后采用移動法插入x結點。具體算法如下:intbininsert(tabler,intx,int*n)/*n為表中結點個數(shù)intlow=0,high=*n1,mid,in,i;while(low=high&!find)mid=(low+high)/2;if(xrrnid)low=mid+1;elsereturn0;/已有相同結點,不做插入操作for(i=*n;ilow;i)/用后移法插入結點ri+1=ri;rlow=x;*n+;/表長度加lreturn1;(例13-38)若線性表中各結點的查找概率不等,則可用如下策略提高順序查找的效率:若找到指定結點,則將該結點和

3、其前驅(qū)(若存在)結點交換,使經(jīng)常被查找的結點盡量位于表的前端。根據(jù)以上策略,分別設計基于順序存儲結構和鏈式存儲結構的順序查找算法。(查找時必須從前往后進行掃描。)解析:(1)采用順序存儲結構的算法:intseareh(intr,intn,intk)inti=0,t;while(ri!=k&i=n)return1;if(i0)t=ri;ri=ri1;ri1=t;returnil;return0;(2)采用帶頭結點的單鏈表結構的算法:linklist*search(1inklist*s,intk)linklist*p,*q,*r;/*r為*p的前驅(qū),*p為*q的前驅(qū)intx;p=S;q=snext;while(q!=NULL&qdata!=k)r=p;p=q;q=qnext;/交換/交換*p和*q的位置if(q!

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論