譚浩強課後習題9 10 合併兩個鍊錶並按公升序排列

2021-10-04 13:54:47 字數 983 閱讀 4576

譚浩強第9章結構體第10題

已知有a,b兩個鍊錶,每個鍊錶中的結點包含學號,成績。要求把兩個鍊錶合併,按學號公升序排序。

01 a

03 c

26 z

-1 end

02 b

04 d

05 f

-1 end

[

1]a->[2

]b->[3

]c->[4

]d->[5

]f->[26

]z

/*

學號,姓名。 把a,b兩個鍊錶合併按學號公升序排列

*/#include

#include

#include

typedef

struct nodeslnode;

//定義鍊錶結構體

slnode *

readlist()

;void

printflist

(slnode *p)

;slnode *

mergesort

(slnode *a,slnode *b)

;int

main()

slnode *

readlist()

//鍵入學生資訊,輸入-1 end結束

return head;

}void

printflist

(slnode *p)

while

(p!=

null

)printf

("\n");

} slnode *

mergesort

(slnode *a,slnode *b)

move=move->next;

} end=end->next;

}return a;

}

合併兩個鍊錶

就是簡單的合併兩個鍊錶,這裡要求倆個鍊錶是有序的。比如 1 2 3 4 5 和 0 7 13 合併之後為 0 1 2 3 4 5 7 13 首先,簡單介紹一下思路,首先區遍歷倆個鍊錶,如果第乙個鍊錶的值小於等於第二個鍊錶的值,那麼將第乙個鍊錶的值插入乙個新的頭節點 鍊錶中,反之如果大於第二個鍊錶的值...

合併兩個鍊錶

1.問題描述description 將兩個公升序鍊錶合併為乙個新的公升序鍊錶並返回。新煉表是通過拼接給定的兩個鍊錶的所有節點組成的。示例 輸入 1 2 4,1 3 4 輸出 1 1 2 3 4 42.思路 將頭部較小的鍊錶的節點與另乙個鍊錶合併,遞迴解答。退出條件為 當乙個鍊錶為空時,返回另乙個鍊錶...

王道課後習題2 3 22 兩個鍊錶的共同字尾

題目描述 帶頭結點的單鏈表,尋找兩個鍊錶的共同字尾的起始位置。演算法思想 雙指標法 核心 雙指標法 int length lnode l 注意 這裡之前寫成了int length lnode l 用的引用。這樣的話,head1和head2最後都會變成null。難怪執行不對。return k lnod...