ch2部分習(xí)題解答_第1頁
ch2部分習(xí)題解答_第2頁
ch2部分習(xí)題解答_第3頁
ch2部分習(xí)題解答_第4頁
ch2部分習(xí)題解答_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

Chapter2線性表練習(xí):找出以下算法中的錯誤和低效之處,并將它改寫為一個既正確又高效的算法。intDeletek(SeqList*L,inti,intk)/*從順序表L中刪除第i個元素起的k個元素*/intcount,j;if(iL-size)printf(“n參數(shù)不合法!”);return0;elsefor(count=1;countsize;j=i+1;j-)L-listj-1=L-listj;L-size-;return1;,改進(jìn):intDeletek(SeqList*L,inti,intk)/*從順序表L中刪除第i個元素起的k個元素*/intcount,j;if(iL-size)printf(“n參數(shù)不合法!”);return0;else/*刪除k個元素*/for(j=i+k;jsize;j+)L-listj-k=L-listj;L-size-=k;return1;,2010考研題:設(shè)將n(n1)個整數(shù)存放到一維數(shù)組R中。試設(shè)計一個在時間和空間兩方面盡可能高效的算法,將R中的序列循環(huán)左移P(0Pnext!=NULL)s=p-next;if(s-data=x)p-next=s-next;/*刪除值為x的結(jié)點*/free(s);elsep=s;補(bǔ)充:已知一個帶頭結(jié)點的遞增有序單鏈表L,試編寫一高效算法:刪除該鏈表中所有元素值大于x且小于y的結(jié)點。,補(bǔ)充:已知兩個帶表頭結(jié)點的非遞減有序單鏈表,頭指針分別為la和lb,試編寫算法,先將兩個表合并為一個帶表頭結(jié)點的非遞減有序單鏈表,然后刪除表中結(jié)點值(data值)相同的冗余結(jié)點,最后返回新單鏈表的頭指針。要求新單鏈表利用原來兩個鏈表的結(jié)點空間,不另外生成新結(jié)點。,voidListMergeDelete(SLNode*la,SLNode*lb,SLNode*lc)SLNode*pa,*pb,*pc;/*歸并兩個有序表*/(*lc)=la;pa=la-next;pb=lb-next;pc=la;while(pa,/*刪除冗余結(jié)點*/pa=(*lc)-next;while(pa)pb=pa-next;while(pb,書P46.2-21(判斷兩個集合是否存在包含關(guān)系)intListSetInclude(SLNode*L1,SLNode*L2)/*判斷帶頭結(jié)點的單鏈表L1中的數(shù)據(jù)元素是否都是單鏈表L2中的數(shù)據(jù)元素*/SLNode*p1,*p2;p1=L1-next;while(p1!=NULL)p2=L2-next;while(p2!=NULL,補(bǔ)充作業(yè)1:創(chuàng)建單鏈表(從表頭-表尾)intListCreate(SLNode*la,intn)/*從鍵盤輸入n個數(shù),建立以la為頭指針的帶頭結(jié)點的單鏈表*/inti;SLNode*p,*q;if(*la)=(SLNode*)malloc(sizeof(SLNode)=NULL)printf(“內(nèi)存空間不足!n”);return0;q=*la;for(i=0;idata);q-next=p;q=p;/*新結(jié)點p插入在表尾*/q-next=NULL;return1;,補(bǔ)充作業(yè)2:已知一個帶頭結(jié)點的循環(huán)雙向鏈表,從第二個結(jié)點至表尾遞增有序。編寫一個算法,將第一個結(jié)點刪除并插入表中適當(dāng)位置,使整個鏈表遞增有序。voidListDIDL(DLNode*h)DLNode*p,*s;p=h-next;if(p!=h)h-next=p-next;p-next-prior=h;/*刪除鏈表中的第一個結(jié)點,elsereturn;并用p指針保存*/s=h-next;while(s!=h/*p結(jié)點插入在s結(jié)點之前*/,2009考研題:已知一個帶頭結(jié)點的單鏈表,假設(shè)該鏈表只給出了頭指針,在不改變鏈表的前提下,請設(shè)計一個盡可能高效的算法,查找鏈表中倒數(shù)第k個結(jié)點(k為正整數(shù)),若查找成功,算法輸出該結(jié)點的data域的值,并返回1,否則,只返回0。intLocatek(SLNode*h,intk)SLNode*p,*q;intcount;p=q=h-next;count=0;whi

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論