順序表的合併算

2021-10-23 00:21:56 字數 1178 閱讀 4791

//將兩個有序順序表合併為乙個新的有序順序表

#include

#include

#define maxsize 20

typedef

struct

sqlist;

//鍊錶初始化

intlistinit

(sqlist *l)

l->length =0;

return1;

}void

printlist

(sqlist l)

printf

("\n");

}bool merge

(sqlist l1, sqlist l2, sqlist *l3)

//l1、l2都取完才結束

while

(i < l1.length || j < l2.length)

else

}return true;

}int

main()

for(i=

0; i < maxsize /

5; i++

)//列印表

printf

("list a:");

printlist

(l1)

;printf

("list b:");

printlist

(l2)

;merge

(l1, l2,

&l3)

;printf

("list c:");

printlist

(l3)

;}

表中資料為自動生成,若想手動輸入,插入listinsert()函式稍加修改即可。

int

listinsert

(sqlist *l,

int i,

int e)

if(l->length >= maxsize)

if(i <= l->length)

} l->array[i -1]

= e;

l->length++

;return1;

}

順序表的合併

順序表的合併 順序表的合併 include include define max 20 用typedef宣告新型別名sequencelist,代表乙個結構體型別,可用新型別名去定義變數 命名乙個新的型別名sequencelist來代表結構體型別 typedef struct sequencelist...

順序表合併

question 建立兩個非遞減順序表a,b,合併為乙個順序表但不建立新的順序表,相同資料不插入。比如 a 1 2 3 4 5 b 2 7 可把長度短的插入到長度長的順序表中,即a 1 2 3 4 5 7 實現 如下 include include define ok 1 define error ...

合併順序表

用順序表實現教材2.7.1節 42頁 的線性表合併 也可以參考課件 假設合併後的順序表的長度不會超出序表可能達到的最大長度。多組輸入。每組輸入資料由3行組成。第一行,輸入兩個整數a和b,分別代表順序表的長度。第二行和第三行,分別輸入a個和b個整數。詳見 和樣例輸入。見樣例輸出。每行最後乙個整數後有乙...