三、有序集合求並集
總結資料結構線性表可以用來模擬集合,通過線性表的各種操作實現集合的基本運算。例如已知集合a和b,求a和b的並集a∪b。這裡分無序集和有序集分別討論。無論無序集和有序集,都可以用順序表或者鍊錶描述。下面是詳細討論。
/*-----合併順序表la lb-----*/
void
mergelist
(list &la, list &lb)
}}
/*-----合併鍊錶la lb-----*/
void
mergelist
(list &la, list &lb)
else
//釋放pb
pa = la->next;
//pa回溯到首元結點 以備下一次查詢
} delete lb;
//釋放lb表頭
}
/*-----合併非遞減順序表la lb-----*/
void
mergelist
(list &la, list &lb, list &lc)
while
(pa <= pa_last)
*pc++
=*pa++
;//lb先到達表尾 處理la剩餘元素
while
(pb <= pb_last)
*pc++
=*pb++
;//la先到達表尾 處理lb剩餘元素
}
/*-----合併有序鍊錶la lb-----*/
void
mergelist
(list &la, list &lb, list &lc)
else
}while
(pa)
while
(pb)
delete lb;
}
無序集有序集
時間複雜度
順序表o(mn)
o(m+n)
鍊錶空間複雜度
順序表o(n)
鍊錶o(1)
資料結構(線性表)
1.試寫一演算法,在無頭結點的動態單鏈表上實現線性表操作insert l,i,b 並和在帶頭結點的動態單鏈表上實現相同操作的演算法進行比較。status insert linklist l,int i,int b 在無頭結點鍊錶l的第 i個元素之前插入元素 belse insert 2.已知線性表中...
資料結構 線性表
參考 一 線性表 順序表 單鏈表 迴圈鍊錶 雙鏈表 順序表 1.表的初始化 void initlist seqlist l 2.求表長 int listlength seqlist l 3.取表中第i個結點 datatype getnode l,i 4.查詢值為x的結點 5.插入 具體演算法描述 v...
資料結構 線性表
線性表是最基礎的一種資料結構,這樣的資料物件包含的資料元素具有一對一的前驅後繼關係。按其邏輯儲存方式的不同可分為兩類線性表 順序表和鏈式表。其中鏈式表又可分為線性鍊錶 迴圈鍊錶和雙向鍊錶。下面分別介紹下這幾種線性表的資料結構 1.順序表 typedef struct sqlist 插入演算法 i到n...