有序鍊錶的合併問題
兩個有序鍊錶合併,並且不建立新的鍊錶,直接合併
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 銷...