剛開始寫就直接寫成了了乙個 有序的鍊錶 最後在把兩個鍊錶歸併是有寫了乙個氣泡排序來排序 可能有點雜 寫的不好見諒
#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...