第4周專案5 迴圈雙鏈表應用

2021-07-23 01:45:24 字數 1506 閱讀 9894

問題及**:

/* 

*檔名稱:專案5.cbp

*作 者:陳光輝

*完成日期:2023年9月23日

*版 本 號:v1.0

* *問題描述:設非空線性表ha和hb都用帶頭節點的迴圈雙鏈表表示。設計乙個演算法insert(ha,hb,i)。

其功能是:i=0時,將線性表hb插入到線性表ha的最前面;當i>0時,將線性表hb插入到

線性表ha中第i個節點的後面;當i大於等於線性表ha的長度時,將線性表hb插入到線性

表ha的最後面。

請在實現演算法時,除專案中給出的特殊要求,其餘工作均可利用專案4完成的演算法支援。

*輸入描述:無

*程式輸出:調整後的鍊錶

*/

程式中利用了已經實現的雙鏈表演算法,標頭檔案cdlinklist.h及其中函式cdlinklist.cpp的實現見

雙鏈表演算法庫

main.cpp測試檔案**:

#include "cdlinklist.h"   

void insert(cdlinklist *&ha, cdlinklist *&hb,int i)

if (i==0) //將hb的所有資料結點插入到ha的頭結點和第1個資料結點之間

else if (inext;

while (jnext;

} q=p->next; //q指向*p結點的後繼結點/

p->next=hb->next; //hb->prior指向hb的最後乙個結點

hb->next->prior=p;

hb->prior->next=q;

q->prior=hb->prior;

} else //將hb鏈到ha之後

free(hb); //釋放hb頭結點

}

int main()

; initlist(ha);

createlistf(ha, ha, 10);

elemtype hb= ;

initlist(hb);

createlistf(hb, hb, 5);

printf("ha: ");

displist(ha);

printf("hb: ");

displist(hb);

insert(ha, hb, 0); //將0改為其他值,多次執行程式完成測試

printf("new ha: ");

displist(ha);

destroylist(ha);

return 0;

}

執行結果:

第4周專案5 迴圈雙鏈表應用

檔名稱 專案5.cpp 作 者 陳勝男 完成日期 2015年10月23日 版 本 號 v1.0 問題描述 設非空線性表ha和hb都用帶頭節點的迴圈雙鏈表表示。設計乙個演算法insert ha,hb,i 其功能是 i 0時,將線性表hb插入到線性表ha的最前面 當i 0時,將線性表hb插入到 線性表h...

第4周專案5 迴圈雙鏈表應用

檔名稱 cpp1.作 者 宋昊 完成日期 2017 年 9 月 26 日 版 本 號 v1.0 問題描述 設非空線性表ha和hb都用帶頭節點的迴圈雙鏈表表示。設計乙個演算法insert ha,hb,i 其功能是 i 0時,將線性表hb插入到線性表ha的最前面 當i 0時,將線性表hb插入到線性表ha...

第4周專案5(2) 迴圈雙鏈表應用

設非空線性表ha和hb都用帶頭節點的迴圈雙鏈表表示。設計乙個演算法insert ha,hb,i 其功能是 i 0時,將線性表hb插入到線性表ha的最前面 當i 0時,將線性表hb插入到線性表ha中第i個節點的後面 當i大於等於線性表ha的長度時,將線性表hb插入到線性表ha的最後面。main.cpp...