有序鍊錶的合併問題

2021-10-14 04:32:57 字數 1792 閱讀 7019

有序鍊錶的合併問題

兩個有序鍊錶合併,並且不建立新的鍊錶,直接合併

1、判斷兩個鍊錶的頭部,小的那個是合成鍊錶的頭。

2、p q 分別是第乙個和第二個鍊錶的頭s是p q 判斷大小之後的小的,p q中小的後移直到其中乙個為空。

3、直接把不為空的連線到鍊錶後邊。

4、輸出鍊錶

合併的**

public

static

comparable

> singlelink s

(singlelink

link1, singlelink

link2)

singlelink.node

p = link1.

gethead()

; singlelink.node

q = link2.

gethead()

; singlelink.node

s = null;

if(p.

getvalue()

.compareto

(q.getvalue()

)>0)

else

while

(p != null && q != null)

else}if

(p == null)

else

if(link1.

gethead()

.getvalue()

.compareto

(link2.

gethead()

.getvalue()

)>0)

else

}

我的single link

public

class

singlelink

else

}public

void

removehead()

if(head==tail)

else

}public

void

addtail

(t value)

else

}public node

gethead()

public

intgetsize()

return size;

}public node

gettail()

public

void

sethead

(node

p)public

void

settail

(node

head)

static

class

node

public

void

setnext

(node

next)

public

node

(e value)

public

intgetsize()

return size;

}public e getvalue()

}public

void

show()

}}

測試**

public

static

void

main

(string[

] args)

輸出

2 3 4 7 8 9

有序鍊錶的合併問題

題目 已知兩個非降序鍊錶序列s1與s2,設計函式構造出s1與s2的並集新非降序鍊錶s3。輸入格式 輸入分兩行,分別在每行給出由若干個正整數構成的非降序序列,用 1表示序列的結尾 1不屬於這個序列 數字用空格間隔。輸出格式 在一行中輸出合併後新的非降序鍊錶,數字間用空格分開,結尾不能有多餘空格 若新鍊...

鍊錶問題(二) 有序鍊錶合併

已知兩個鍊錶head1和head2個字有序,請把他們合併成乙個鍊錶依然有序 包含所有結點,即便大小相同 struct node 方法一 遞迴實現 node merge node head1,node head2 else return head 方法二 迴圈實現 node merge node he...

有序鍊錶合併

歸併排序 la lb是兩個帶頭結點的有序鍊錶,歸併兩個鍊錶得到新的有序表lc。設立指標pa,pb,pc,其中pa和pb分別指向la,lb中當前待比較的結點,pc指向lc表中當前最後乙個結點。將pa,pb結點中值較小的乙個鏈結到pc之後。typedef struct node node,plink 銷...