資料結構實現兩個有序鍊錶的合併(c語言)

2021-09-14 00:17:07 字數 613 閱讀 2784

現有兩個有序單鏈表,通過**實現將兩個單鏈表合併為乙個有序的新錶,要求使用舊表的空間,不能新分配記憶體

#include

#include

typedef

struct list

list;

void

newlist

(list *l)

void

setlist

(list * l)

else}}

void

printflist

(list *l)

printf

("\n");

}list *

add(list *la, list *lb)

else

}//若其中乙個鍊錶的結點已經全接在新錶中則將另乙個鍊錶的剩餘結點接在新錶的後面

資料結構 合併兩個有序鍊錶,合併後依然有序

解題思路 假設有兩個有序單鏈表list1 list2 首先建立新的空鍊錶,用於存放結果 如果兩個有序單鏈表均為空,結果鍊錶為空 如果有乙個有序單鏈表為空,則結果鍊錶為另乙個鍊錶 如果兩個有序單鏈表均不為空,則根據以下方法進行合併 合併結束的條件 兩個鍊錶有乙個為空 合併兩個有序鍊錶,合併後依然有序 ...

資料結構習題 兩個有序鍊錶序列的合併

include using namespace std typedef int elementtype typedef struct node ptrtonode struct node typedef ptrtonode list list read r next null return l vo...

合併兩個有序鍊錶

鍊錶的題目總是讓我很惆悵。動輒就會runtime error。比如這題,額外用了乙個節點的空間來儲存頭節點。我很不情願多用這個空間,不過貌似不行。貌似不行,實際可行,見附錄。把頭節點提出迴圈 實現類 class solution else if l1 null p next l1 if l2 nul...