線性表的應用 有序表的合併

2022-09-09 04:33:13 字數 719 閱讀 3789

有序表的合併:

已知線性表 la 和 lb 中的資料元素按值非遞減有序排列,現要求將 la 和 lb 歸併為乙個新的線性表 lc,

且 lc 中的資料仍按值非遞減有序排列。

la = (1,7,8)

lb = (2,4,6,8,10,11)

lc = (1,2,4,6,7,8,8,10,11)

演算法步驟:

① 建立乙個空表 lc

② 依次從 la 或 lb 中 「摘取」 元素值較小的結點插入到 lc 表的字後,直至其中乙個表變空為止

③ 繼續將 la 或 lb 其中乙個表的剩餘節點插入在 lc 表的最後。

**部分

void mergelist_sq(sqlist la, sqlist lb, sqlist &lc)

else

//當有乙個表為空時,這個while迴圈就結束了

}

//pa <= pa_last 就說明 pa 表裡有剩餘元素,

//將其迴圈放入 pc 表中

while(pa<=pa_last)

//pb <= pb_last 就說明 pb 表裡有剩餘元素,

//將其迴圈放入 pc 表中

while(pb<=pb_last)

}

有序線性表的有序合併

對於這個問題其實想法很簡單,已經已知線性表是有序的,那麼我們只需要比較值的大小放入另外乙個陣列中或者直接輸出 要考慮的是兩個輸入序列的邊界問題。這個問題在 中注釋,也是常用的迴圈兩個線性表的方法。已知線性表 la 和 lb 中的資料元素按值非遞減有序排列,現要求將 la 和 lb 歸併為乙個新的線性...

線性表的合併(有序)

define crt secure no warnings 1 include stdio.h include windows.h define maxsize 20 typedef struct a int hblist a b,a c,a d while blow b last clow c l...

線性表的合併 有序表(利用順序表)的合併

例1 求解一般集合的並集問題 問題描述 已知兩個集合 a 和 b 現要求乙個新的集合 a a u b 例如,設 a 7,5,3,11 b 2,6,3 合併後,a 7,5,3,11,2,6 問題分析 可以利用兩個線性表 la 和 lb 分別表示集合 a 和 b 即線性表中的資料元素為集合中的成員 這樣...