問題:
/*
*檔名稱:專案5-迴圈雙鏈表應用.cbp
*作 者:楊雅鑫
*完成日期:2023年9月20日
*版 本 號:v1.0
* *問題描述:設非空線性表ha和hb都用帶頭節點的迴圈雙鏈表表示。設計乙個演算法insert(ha,hb,i)。
其功能是:i=0時,將線性表hb插入到線性表ha的最前面;當i>0時,將線性表hb插入到
線性表ha中第i個節點的後面;當i大於等於線性表ha的長度時,將線性表hb插入到線性
表ha的最後面。
請在實現演算法時,除專案中給出的特殊要求,其餘工作均可利用專案4完成的演算法支援。
*輸入描述:無
*程式輸出:調整後的鍊錶
*/
**:
#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;
}
執行結果:
知識點總結:
雙鏈表的插入。
學習心得:
大概能想清楚思路,但是細節方面還是需要多加練習才能熟練掌握。
第四周專案5 迴圈雙鏈表應用
檔名稱 s.cpp 作 者 佟興鋒 完成日期 2015年10月9日 版 本 號 v1.0 問題描述 設非空線性表ha和hb都用帶頭節點的迴圈雙鏈表表示。設計乙個演算法insert ha,hb,i 其功能是 i 0時,將線性表hb插入到線性表ha的最前面 當i 0時,將線性表hb插入到線性表ha中第i...
第四周專案5迴圈雙鏈表應用
檔名稱 專案5.cpp 作 者 彭子竹 完成日期 2015年10月12日 版 本 號 v1.0 問題描述 設非空線性表ha和hb都用帶頭節點的迴圈雙鏈表表示。設計乙個演算法insert ha,hb,i 其功能是 i 0時,將線性表hb插入到線性表ha的最前面 當i 0時,將線性表hb插入到 線性表h...
第四周專案5 迴圈雙鏈表應用
檔名稱 idea.cpp 完成日期 2015年11月06日 include include include cdlinklist.h void insert cdlinklist ha,cdlinklist hb,int i if i 0 將hb的所有資料結點插入到ha的頭結點和第1個資料結點之間 ...