o(1)時に2つの循環二重リンクリストを一緒にマージする方法?
-
29-09-2020 - |
質問
Listsが循環二重リンクリストとして格納されているFibonaccciヒープを実装しています。私がしようとしていることは、1つのリンクリスト内のランダムなノードへのポインタと、他のものにランダムなノードを与えられます、私はo(1)時にそれらをまとめたいです。私はこれを描く試みましたが、私はこれを行う方法を理解することはできませんでした。これは私の最初のアイデア、疑似コード:
union(Node one, Node two) {
if other = nil
return
p1 = one
p2 = one.right
p3 = two
p4 = two.right
p1.right = p4
p4.left = p1
p2.right = p3
p3.left = p2
}
.
各Node
には、それぞれノードを左右に格納するleft
属性とright
属性があります。しかし、これはうまくいきませんでした。2つのリンクリストをマージする方法を理解することができますか?
所属していません cs.stackexchange