freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

第2章線性表答案(更新版)

2025-10-31 14:36上一頁面

下一頁面
  

【正文】 else pcnext=pb。} else∥處理 padata=pbdata. {pcnext=pa。 while(paamp。 LinkedList Union(LinkedList ha,hb) ∥線性表 A和 B代表兩個集合,以鏈?zhǔn)酱鎯Y(jié)構(gòu)存儲,元素遞增有序。 free(la)。pb) if(padatapbdata) {pcnext=pa?!吾尫蓬^結(jié)點 .ha,hb指針未被破壞。 pre=pa?!紊暾埧臻g rdata=pbdata。 ∥ pre指向當(dāng)前待合并結(jié)點的前驅(qū)。 LinkedList Union(LinkedList ha, hb) ∥ ha 和 hb 是兩個無頭結(jié)點的數(shù)據(jù)域值遞增有序的單鏈表,本算法將 hb 中并不出現(xiàn)在 ha中的數(shù)據(jù)合并到 ha中,合并中不能破壞 hb鏈表。 } }∥算法 Union結(jié)束。 {r=panext。 } else {r=pbnext。amp。該問題要求結(jié)果鏈表按元素值遞減次序排列。 2) (1)rprior=qprior。 總之,兩次調(diào)用將 L 循環(huán)鏈表分解為兩個。 p^.rlink^.llink p^.llink。 S2 記原 pa鏈表中刪除的結(jié)點個數(shù)。 (3) while(p!=null amp。 pdata!=X) p=pnext。 pnext=qnext。 9. 在單鏈表中不能從當(dāng)前結(jié)點(若當(dāng)前結(jié)點不是第一結(jié)點)出發(fā)訪問到任何一個結(jié)點,鏈表只能從頭指針開始,訪問到鏈表中每個結(jié)點。 6.在線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)中,頭指針指鏈表的指針,若鏈表有頭結(jié)點則是鏈表的頭結(jié)點的指針,頭指針具有標(biāo)識作用,故常用頭指針冠以鏈表的名字。 last:0..maxlen。順序表可以隨機存取,時間復(fù)雜度為 O( 1)。 (5)r^.next:=q^.next。 ∥待逆置結(jié)點 (3)L=p。 qnextpre=qpre。∥形成循環(huán)鏈表 (D)j:=0。 (3) r^.next:=q。(5)IF pa=NIL THEN return(true) ELSE return(false)。 (4) pb:=pb^.next。 pnext=unext。 pxnext=py 4 . ni+1 5.主要是使插入和刪除等操作統(tǒng)一,在第一個元素之前插入 元素 和刪除第一個結(jié)點不必另作判斷。第 2 章 線性表 一.選擇題 ,C 二.判斷題 1. 2.√ 3. √ 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. √ 15. 16. √ 部分答案解釋如下。 三.填空題 1.順序 2.( n1) /2 3. pynext=pxnext。 14 . u=pnext。 (2) pbNIL AND pa^.data=pb^.data (3) return(inclusion(pa,pb))。pa:=pa^.next。 ( 2) r^.next:=p。∥新的前驅(qū) (C)p^.link:=head?!晤^結(jié)點 l這時起監(jiān)視哨作用 (2) l^.freq:=p^.freq ∥頭結(jié)點起監(jiān)視哨作用 (3) qprenext=qnext。 ∥暫存后繼 (2)q=L。 ∥或 q:=q^.next。 ( 2)選順序存儲結(jié)構(gòu)。 順序存儲結(jié)構(gòu)的定義是: CONST maxlen=線性表可能達到的最大長度; TYPE sqlisttp=RECORD elem:ARRAY[1..maxlen] OF ElemType。 射時, ai與 ai+1的物理位置相鄰;鏈表表示時 ai與 ai+1的物理位置不要求相鄰。 (3) stalist[p].next。 12. q=pnext。amp?!尾檎沂? else return(p)。 S1記結(jié)果鏈表中結(jié)點個數(shù)(即 pa與 pb中相等的元素個數(shù))。 q^.llink:=p 17.(1)前兩個語句改為: ^.rlink p^.rlink。 subp(pb,pa)調(diào)用結(jié)果是將 pb到 pa的前驅(qū)(指在 L鏈表中,并非剛構(gòu)造的 pa循環(huán)鏈表中)構(gòu)造為循環(huán)鏈表。 21. 1)本算法功能是將雙向循環(huán)鏈表結(jié)點的數(shù)據(jù)域按值自小到大排序,成為非遞減(可能包括數(shù)據(jù)域值相等的結(jié)點)有序雙向循環(huán)鏈表。 五、 算法設(shè)計題 1. [題目分析 ]因為兩鏈表已按元素值遞增次序排列,將其合并時,均從第一個結(jié)點起進行比較,將小的鏈入鏈表中,同時后移鏈表工作指針。 while(pa!=null amp。 ∥恢復(fù) pa為當(dāng)前待比較結(jié)點。 } while(pa!=null) ∥將 la表的剩余部分鏈入結(jié)果表,并逆置。 pb=r。 與本題類似的其它題解答如下: (1)[問題分析]與上題類似,不同之處在于:一是鏈表無頭結(jié)點,為處理方便,給加上頭結(jié)點,處理結(jié)束再刪除之;二是數(shù)據(jù)相同的結(jié)點,不合并到結(jié)果鏈表中;三是 hb 鏈表不能被破壞,即將 hb的結(jié)點合并到結(jié)果鏈表時,要生成新結(jié)點。 ∥ pb是 hb鏈表的工作指針 pre=la。 {r=(LinkedList)malloc(sizeof(LNode))。 {prenext=pa。 free(la)。amp。 else pcnext=pb。因此兩表中合并 時,如有元素值相等元素,則應(yīng)刪掉一個?!?pc為結(jié)果鏈表當(dāng)前結(jié)點的前驅(qū)指針。pb=pbnext?!? 若 ha表未空,則鏈入結(jié)果表。其核心語句段如下: pa=lanext。pc=pa。} else {u=pb。 free(u)。∥ pa、 pb是兩鏈表的工作指針。}∥刪除 L1表多余元素 else if (padatapbdata) pb=pbnext。} ∥重復(fù)元素不進入 L1表。} ∥ 刪 L1表剩余元素 pcnext=null。pc=Cnext。} else{while(pbamp。amp。 }∥結(jié)束了結(jié)果表中第一元素的確定 while(paamp。 else break。pre=pa。}∥ 若 A中已有 B, C公共元素,則不再存入結(jié)果表。這就要求當(dāng)前待合并到結(jié)果表的元素要與其前驅(qū)比較。 3. [題目分析 ]循環(huán)單鏈表 L1和 L2數(shù)據(jù)結(jié)點個數(shù)分別為 m和 n ,將二者合成一個循環(huán)單鏈表時,需要將一個循環(huán)鏈表的結(jié)點(從第一元素結(jié)點到最后一個結(jié)點)插入到另一循環(huán)鏈表的第一元素結(jié)點前即可。∥ L1為空表。∥釋放無用頭結(jié)點。 L1next=L2next。 ∥ q指向 la的第一個元素結(jié)點。 [算法討論 ]若循環(huán)單鏈表帶有頭結(jié)點,則相應(yīng)算法片段如下: q=lbnext。 ( 2) [題目分析 ]本題要求將單向鏈表 ha和單向循環(huán)鏈表 hb合 并成一個單向鏈表,要求算法所需時間與鏈表長度無關(guān),只有使用帶尾指針的循環(huán)單鏈表,這樣最容易找到鏈表的首、尾結(jié)點,將該結(jié)點序列插入到單向鏈表第一元素之前即可。 ∥ q指向 hb首元結(jié)點。設(shè)兩線性表的長度各為 m和 n ,則結(jié)果表的最后一個元素應(yīng)在 m+n位置上。 ∥ k為結(jié)果線性表的工作指針(下標(biāo))。k:=k1。在最佳情況下( LB的最小元素大于 LA的最大元素),僅將 LB的 n個元素移(拷貝)到 LA中,時間復(fù)雜度為 O( n),最差情況, LA的所有元素都要移動,時間復(fù)雜度為 O( m+n)。 {p=listlink。 {plink=list?!螌?dāng)前排序結(jié)點鏈入有序鏈表中。 另一說明是,本題中線性鏈表 list 不帶頭結(jié)點,而且要求“不得使用除該鏈表以外的任何鏈結(jié)點空間“,所以處理復(fù)雜,需要考慮當(dāng)前結(jié)點元素值比有序鏈表第一結(jié)點的元素值還小的情況,這時要修改鏈表指針 list。 qlinkdatapdata)q=qlink。 {if(lanext!=null)∥鏈表不為空表。 while(qnext!=nullamp。 } 與本題有類似敘述的題的解答: ( 1)本題也是鏈表排序問題,雖沒象上題那樣明確要求“利用直接插入的原則”來排序,仍可用上述算法求解,這里不再贅述。 WHILE(sNIL)DO [r:=s^.NEXT。P:=s。Q^.NEXT:=NIL。 s^.NEXT:=pre^.NEXT。算法中偶數(shù)鏈上結(jié)點是靠數(shù)據(jù)整除 2 等于 0( DATA DIV 2=0)判斷的。∥為 C申請結(jié)點空間。 if (pdata0)∥小于 0的放入 B表。 } }∥算法結(jié)束。 {i=0。 ra=A。 if(i%2==0) ∥處理原序號為偶數(shù)的鏈表結(jié)點 。 } p=r。 j=n1。 if(ij){a[i]=a[j]。 ∥ 正數(shù)后移。請讀者利用上面解題思想自行解答。amp。 ∥當(dāng)前元素大于參考元素時指針前移。 {i=0。 [算法討論 ]本題用一維數(shù)組存儲線性表,結(jié)果線性表 B和 C中分別有 j+1和 k+1個元素。 VAR i,j,t: integer; BEGIN i:=1; j:=n; t:=a[1] ;∥ i,j指示順序表的首尾元素的下標(biāo), t暫存分界元素 WHILE( ij) DO BEGIN WHILE ( ij) AND( a[j]=19) DO j:=j1; IF( ij) THEN BEGIN A[i]:=A[j]; i:=i+1 END; WHILE ( ij) AND( a[i] 19) DO i:=i+1; IF( ij) THEN BEGIN A[j]:=A[i]; j:=j1 END; END; a[i]:=t; END。遍歷 結(jié)束后再執(zhí)行刪除操作。 } prenext=qnext;∥從鏈表上刪除最小值結(jié)點 free( q); ∥釋放最小值結(jié)點空間 }∥結(jié)束算法 delete。 ∥本算法將鏈表中數(shù)據(jù)域值最小的那個結(jié)點移到鏈表的最前面。 qllink=p; ∥ p與其前驅(qū)交換 prlinkllink=q; ∥ p的后繼的前驅(qū)指向原 p的前驅(qū) prlink=q; ∥ p的后繼指向其原來的前驅(qū) }∥算法 exchange結(jié)束。 } if( a[mid]==x amp。算法中使用一維數(shù)組 a表示線性表,未使用包含數(shù)據(jù)元素的一維數(shù)組和指示線性表長度的結(jié)構(gòu)體。在處理鏈表的后一半元素時,當(dāng)訪問到鏈表的一個元素后,就從棧中彈出一個元素,兩元素比較,若相等,則將鏈表中下一元素與棧中再彈出元素比較,直至鏈表到尾。 ∥恢復(fù)最后的 i值 if( n%2==1) p=pnext; } ∥若 n是奇數(shù),后移過中心結(jié)點。 14. [題目分析 ] 在單鏈表中刪除自第 i個元素起的共 len 個元素,應(yīng)從 第 1個元素起開始計數(shù),記到第 i個時開始數(shù) len個,然后將第 i1個元素的后繼指針指向第 i+len個結(jié)點,實現(xiàn)了在 A鏈表中刪除自第 i個起的 len個結(jié)點。 p=heada;∥ p為鏈表 A的工作指針,初始化為 A的頭指針,查到第 i個元素時, p指向第 i1個元素 k=0;∥計數(shù) while( p!=null amp。 if (headanext!=null) ∥ headanext=null 說明鏈表中結(jié)點均已刪除,無需往 B表 插入 {whi
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1