資料結構 線性表的合併

2021-10-14 11:10:50 字數 1095 閱讀 4698

三、有序集合求並集

總結資料結構線性表可以用來模擬集合,通過線性表的各種操作實現集合的基本運算。例如已知集合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...