6 4 鍊錶拼接 20分

2021-10-12 16:37:35 字數 1638 閱讀 8011

正確作答出這個程式前,發現測試點老是段錯誤或者執行超時,心態**,然後準備csdn上面copy一手,誰都不愛。結果發現自己能力有限,沒法短時間消化其他大佬的**,於是搞出了自認為較為通俗易懂的**。當然,本篇的通過**或許有進步空間,還請各位讀者不吝賜教

本題要求實現乙個合併兩個有序鍊錶的簡單函式。鍊錶結點定義如下

struct listnode 

;

函式介面定義:

struct listnode *

mergelists

(struct listnode *list1,

struct listnode *list2)

;

其中list1list2是使用者傳入的兩個按data公升序鏈結的鍊錶的頭指標;函式mergelists將兩個鍊錶合併成乙個按data公升序鏈結的鍊錶,並返回結果鍊錶的頭指標

裁判測試程式樣例:

#include

#include

struct listnode

;struct listnode *

createlist()

;/*裁判實現,細節不表*/

struct listnode *

mergelists

(struct listnode *list1,

struct listnode *list2)

;void

printlist

(struct listnode *head )

printf

("\n");

}int

main()

/* 你的**將被嵌在這裡 */

輸入樣例:

135

7-12

46-1

輸出樣例:

123

4567

struct listnode *

mergelists

(struct listnode *list1,

struct listnode *list2)

//目標返回頭結點的賦值

else

//目標返回頭結點的賦值

while

(l1!=

null

&&l2!=

null

)//此處先進行了等長鍊錶的合併

else

}while

(l1!=

null

||l2!=

null

)//此處檢查是否有鍊錶元素未被錄入

else

} p->next =

null

;//記得賦值null,不然有概率不通過23333

return head;

}

6 25 鍊錶拼接 20 分

原題鏈結 題目的大意是給定兩個公升序單鏈表,合併成要給鍊錶,合併後仍然公升序,題目要求實現的是mergelist 函式。資料結構中講歸併排序的鍊錶實現時,其中的乙個步驟就是合併鍊錶。include include struct listnode struct listnode createlist ...

實驗11 2 5 鍊錶拼接 (20 分)

實驗11 2 5 鍊錶拼接 20 分 本題要求實現乙個合併兩個有序鍊錶的簡單函式。鍊錶結點定義如下 struct listnode 函式介面定義 struct listnode mergelists struct listnode list1,struct listnode list2 其中list...

實驗11 2 5 鍊錶拼接 20分

本題要求實現乙個合併兩個有序鍊錶的簡單函式。鍊錶結點定義如下 struct listnode 函式介面定義 struct listnode mergelists struct listnode list1,struct listnode list2 其中list1和list2是使用者傳入的兩個按da...