排序單鏈表 並兩個有序鍊錶, 合併後依然有序

2021-07-12 07:51:50 字數 843 閱讀 3144

建立鍊錶節點結構

typedef struct strnode

node;

typedef struct strnode* pnode;

鍊錶的排序,在這裡就是對於每個節點所存數字的比較。

void bubble_pnode(pnode phead)

p1 = phead;

while (p1 != null)

p2 = p2->pnext;

} p1 = p1->pnext;

}}

其實這裡我採用了比較笨的辦法,就是先鏈結兩個鍊錶,然後重新排序依次就好了。

pnode merge_node(pnode phead1, pnode phead2)//合併兩個有序鍊錶

ph1->pnext = ph2;

pphead = phead1;

bubble_pnode(pphead);

return pphead;

}

//修改:2016-10-3

node* merge(node* phead1, node* phead2)

else

return pmergehead;

}

當然,也可以使用迴圈來做 , 留給讀者了。。。

兩個無序單鏈表 排序後合併成乙個有序鍊錶

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!兩個無序單鏈表,排序後合併成乙個有序鍊錶 演算法思想 用冒泡法,對鍊錶1和2進行排序,對排序後的兩個鍊錶,從小到大進行迴圈,裝入鍊錶3中。include include struct stud 定義鍊錶 void pai xue struct st...

合併兩個有序單鏈表,合併後依舊有序

思路 類似於摘結點法,利用尾指標 tail 把結點摘下來然後鏈在一起,然後返回頭指標 define crt secure no warnings 1 合併兩個有序單鏈表,合併後依舊有序 includeusing namespace std typedef int datatype typedef s...

合併兩個有序的單鏈表,合併後依然有序

分析過程 首先我要合併有序的鍊錶,合併後依然有序。我就要有兩個指標,分別指向兩個鍊錶,觀察所給的兩個鍊錶是公升序還是降序的來確定合併後的鍊錶是否有序。這裡預設的認為鍊錶時公升序的 用指標分別指向兩個鍊錶的第乙個節點,比較大小,那個大,將元素尾插進入我所要返回的新鍊錶中去。一次比較迴圈往復,直至某乙個...