計(jì)算機(jī)專業(yè)復(fù)習(xí)16年數(shù)據(jù)結(jié)構(gòu)課件chap_第1頁(yè)
計(jì)算機(jī)專業(yè)復(fù)習(xí)16年數(shù)據(jù)結(jié)構(gòu)課件chap_第2頁(yè)
計(jì)算機(jī)專業(yè)復(fù)習(xí)16年數(shù)據(jù)結(jié)構(gòu)課件chap_第3頁(yè)
計(jì)算機(jī)專業(yè)復(fù)習(xí)16年數(shù)據(jù)結(jié)構(gòu)課件chap_第4頁(yè)
計(jì)算機(jī)專業(yè)復(fù)習(xí)16年數(shù)據(jù)結(jié)構(gòu)課件chap_第5頁(yè)
已閱讀5頁(yè),還剩17頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

已知L是無(wú)表頭結(jié)點(diǎn)的單鏈表,且P結(jié)點(diǎn)既不是首元結(jié)點(diǎn),也不是尾元結(jié)點(diǎn),試從下列提供的答案中選擇合適的語(yǔ)句序列。A.在P結(jié)點(diǎn)后插入S結(jié)點(diǎn)的語(yǔ)句序列是();B、在P結(jié)點(diǎn)前插入S結(jié)點(diǎn)的語(yǔ)句序列是();C、在表首插入S結(jié)點(diǎn)的語(yǔ)句序列是();D、在表尾插入S結(jié)點(diǎn)的語(yǔ)句序列是();(1)P->next=S;(2)P->next=S->next->next;(3)P->next=S->next;(4)S->next=P->next;(5)S->next=L;(6)S->next=NULL;(7)Q=P;(8)while(P->next!=Q)P=P->next;(9)while(P->next!=NULL)P=P->next;(10)P=Q;(11)P=L;(12)L=S;(13)L=P;2.6A4,1B7,11,8,4,1C5,12D11,9,1,62.7已知L是帶頭結(jié)點(diǎn)的非空單鏈表,且P結(jié)點(diǎn)既不是首元結(jié)點(diǎn),也不是尾元結(jié)點(diǎn),試從下列提供的答案中選擇合適的語(yǔ)句序列。A刪除P結(jié)點(diǎn)的直接后繼結(jié)點(diǎn)的語(yǔ)句序列B刪除P結(jié)點(diǎn)的直接前驅(qū)結(jié)點(diǎn)的語(yǔ)句序列C刪除P結(jié)點(diǎn)的語(yǔ)句序列D刪除首元結(jié)點(diǎn)的語(yǔ)句序列(無(wú)頭結(jié)點(diǎn)呢?)E刪除尾元結(jié)點(diǎn)的語(yǔ)句序列(1)p=p->next;(2)p->next=p;(3)p->next=p->next->next;(4)p=p->next->next;(5)while(p!=NULL)p=p->next;(6)while(Q->next!=NULL){p=Q;Q=Q->next;}(7)while(p->next!=Q)p=p->next;(8)while(p->next->next!=Q)p=p->next;(9)while(p->next->next!=NULL)p=p->next;(10)Q=P;(11)Q=p->next;(12)p=L;(13)L=L->next;(14)free(Q);A11,3,14B10,12,8,11,3,14C10,12,7,3,14D12,11,3,14E12,9,11,3,14/12,11,6,3,142.8已知P結(jié)點(diǎn)是某雙向鏈表的中間結(jié)點(diǎn),試從下列提供的答案中選擇合適的語(yǔ)句序列A在P結(jié)點(diǎn)后插入S結(jié)點(diǎn)的語(yǔ)句序列B在P結(jié)點(diǎn)前插入S結(jié)點(diǎn)的語(yǔ)句序列C刪除P結(jié)點(diǎn)的直接后繼結(jié)點(diǎn)的語(yǔ)句序列D刪除P結(jié)點(diǎn)的直接前驅(qū)結(jié)點(diǎn)的語(yǔ)句序列E刪除P結(jié)點(diǎn)的語(yǔ)句序列(1)P->next=P->next-next;(2)P->prior=P->prior->prior(3)P->next=S(4)P->prior=S;(5)S->next=P;(6)S->prior=P;(7)S->next=p->next;(8)S->prior=P->prior;(9)P->prior->next=P->next;(10)P->prior->next=P;(11)P->next->prior=P;(12)P->next->prior=S;(13)P->prior->next=S;(14)P->next->prior=P->prior;(15)Q=P->next;(16)Q=P->prior;(17)free(P);(18)free(Q);A6,7,12,3/7,12,6,3B8,5,13,4/8,13,4,5C15,1,11,18D16,2,10,18E9,14,172.9簡(jiǎn)述以下算法的功能(1)StatusA(LinkedList&L){//L是無(wú)表頭結(jié)點(diǎn)的單鏈表if(L&&L->next){Q=L;L=L->next;P=L;while(P->next)P=P->next;P->next=Q;Q->next=NULL;}returnOK;}//A如果表的長(zhǎng)度不小于2,則將首元結(jié)點(diǎn)刪除,并插入到表尾。(2)voidBB(LNode*s,LNode*q){p=s;While(P->next!=q)p=p->next;P->next=s;}//BBVoidAA(LNode*pa,LNode*pb){BB(pa,pb);BB(pb,pa);}將一個(gè)單循環(huán)鏈表斷成2個(gè)單循環(huán)鏈表習(xí)題集p16,2.10指出下面算法的錯(cuò)誤和低效之處,并修改為正確和高效的算法.StatusDeleteK(SqList&a,inti,intk){if(i<1||k<0||i+k>a.length)returnINFEASIBLE;else{for(count=1;count<k;count++){for(j=a.length;j>=i+1;j--)a.elem[j-1]=a.elem[j];a.length--;}returnOK;}Status

DeleteK(SqList&a,int

i,int

k)//刪除線性表a中第i個(gè)元素起的k個(gè)元素

{

intcount;

if(i<1||k<0||i+k-1>a.length)

returnINFEASIBLE;

for(count=0;i+count+k<=a.length;count++)//注意循環(huán)結(jié)束的條件

a.elem[i-1+count]=a.elem[i-1+count+k];

a.length-=k;

returnOK;

}//DeleteK

2.11設(shè)順序表va中的數(shù)據(jù)元素遞增(非遞減)有序。試寫(xiě)一算法,將x插入到順序表的適當(dāng)位置上,以保持該表的有序性。回憶普通的順序表插入一個(gè)元素的算法這個(gè)問(wèn)題的解決方法:兩種思路StatusInsert_SqList(SqList&va,ElemTypex)//把x插入遞增有序表va中

{

if(va.length==va.listsize)returnERROR;

i=0;While(va.elem[i]<x)i++;

for(j=va.length-1;j>=i;j--)

va.elem[j+1]=va.elem[j];

va.elem[i]=x;

va.length++;

returnOK;

}//Insert_SqListStatusInsert_SqList(SqList&va,ElemTypex)//把x插入遞增有序表va中

{

if(va.length+1>va.listsize)returnERROR;

for(i=va.length-1;va.elem[i]>x&&i>=0;i--)

va.elem[i+1]=va.elem[i];

va.elem[i+1]=x;

va.length++;

returnOK;

}//Insert_SqList2.17試寫(xiě)一算法,在無(wú)頭結(jié)點(diǎn)的動(dòng)態(tài)單鏈表上實(shí)現(xiàn)操作INSERT(L,i,b),并和帶頭結(jié)點(diǎn)的算法比較。StatusListInsert_L(LinkList&L,inti,ElemTypee){//申請(qǐng)一個(gè)新的結(jié)點(diǎn),將e放入

//在帶頭結(jié)點(diǎn)的單鏈線性表L中第i個(gè)位置之前插入元素eP=L;j=0;

while(P&&j<i-1){p=p->next;++j;}//找第i-1結(jié)點(diǎn)

if(!p||j>i-1)returnERROR;//i小于1或大于表長(zhǎng)

s=(LinkList)malloc(sizeof(LNode));

s->data=e;//生成新結(jié)點(diǎn)

s->next=p->next;p->next=s;

//插入表中

returnOK;}//ListInsert_L2.13LOCATE(L,X)intlocate(LinklistL,ElemTypex){ i=1; p=L->next; while(p!=NULL&&p->data!=x) { p=p->next; ++i; } if(p==NULL) return0; else returni;}intlocate(SqListL,ElemTypex){ inti; for(i=0;i<L.length;++i) if(L.elem[i]==x) returni+1;return0;}StatusListInsert_L(LinkList&L,inti,ElemTypee){//申請(qǐng)一個(gè)新的結(jié)點(diǎn),將e放入

//在帶頭結(jié)點(diǎn)的單鏈線性表L中第i個(gè)位置之前插入元素e

s=(LinkList)malloc(sizeof(LNode));

s->data=e;//生成新結(jié)點(diǎn)

if(i==1){s->next

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論