SDUT有序鍊錶的歸併

2021-10-06 20:32:59 字數 655 閱讀 8904

**實現:

#include

using namespace std;

struct node

;struct node *

creat

(int n)

///順序建立鍊錶。

return head;

}struct node *hb(

struct node *head1,

struct node *head2)

///以head1的頭節點當新鍊錶,以特定的排列方式合併兩個鍊錶,使新鍊錶有序。

else}if

(p1)

///如果head1與head2的長度不相等,最後就會有節點剩餘,這一步就是將剩餘節點出入新鍊錶的後面。

else

return head1;

}void

display

(struct node *head)

///遍歷鍊錶。

else

q=q->next;}}

intmain()

有序鍊錶的歸併

includeusing namespace std typedef struct lnode 定義單鏈表 lnode,linklist void initlist l linklist l 建立單鏈表 void input linklist l,int n 依次往單鏈表l裡輸入資料 void ou...

c 有序鍊錶歸併

剛開始寫就直接寫成了了乙個 有序的鍊錶 最後在把兩個鍊錶歸併是有寫了乙個氣泡排序來排序 可能有點雜 寫的不好見諒 pragma once include include include include include include include include include include i...

歸併有序迴圈鍊錶

思路 另外新建乙個獨立的鍊錶作為合併的結果。設定兩個指標,分布從兩個表頭開始,依次向後移動,並不斷比較他們所指的元素的大小關係,每次把比較小的結點複製到新的迴圈鍊錶中。時間複雜度 每個結點訪問一次,時間代價為o n 其中,n為鍊錶list1和list2長度的最大值。程式 linklist combi...