c 有序鍊錶歸併

2021-08-13 16:07:49 字數 1184 閱讀 1308

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

#pragma once

#include#include#include#include#include#include#include#include#include#include#include #includeusing namespace std;

struct list

};//資料交換 

inline void change(list *p, int data)

class  list

p = p->next;

}return 0;

}//向鍊錶中新增資料

inline int  insert(int data)

//如果頭結點為空就向頭結點新增

if (head->data>data)

list *p = head->next;

list *last = head;

//找到要插入的位子

while (p != null)

last = p;

p = p->next;

}//在尾部插入

p = (list *)malloc(sizeof(list));

p->data = data;

p->next = null;

last->next = p;

last = null;

p = null;

free(last);

free(p);//釋放空間

return 0;

}   //列印鍊錶

inline int  putout()

while (p != null)

p = null;

free(p);

return 0;

}//實現歸併

inline int  combine(list other)

else

tail->next = other.head;

}tail = null;

free(tail);

this->listsort();

return 0;}};

int main(int agrc, char argv)

有序鍊錶的歸併

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

SDUT有序鍊錶的歸併

實現 include using namespace std struct node struct node creat int n 順序建立鍊錶。return head struct node hb struct node head1,struct node head2 以head1的頭節點當新鍊...

歸併有序迴圈鍊錶

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