だから私はバイナリ最小ヒープを実装しようとしています。バイナリ最小ヒープがその構造とプロパティに関して何を伴うかを理解しています。ただし、ポインターとノードを使用して実装しようとすると、壁にぶつかります。
、およびを使用してNode
います。挿入された最後のノードを指す場所もあります。right/left and pointers
int element
parent pointer
LastNode
私の口論は、最後のノードに関して、要素を挿入するときに何をすべきかわからないということです。これが私の言いたいことです。
ステップ 1.) ヒープが空であると仮定します。root
つまり、x に要素が含まれる x を作成し、 および を設定root.left/right = null
しLastNode = root.left
ます。
X
/ \
0 0
これは私が立ち往生している部分です。別の要素を格納するために別のノードを作成すると、それは X の左側または LastNode が指す場所になることを私は知っています。私の質問 LastNode で次に何をすればよいですか? x.right を指すようにしますか? 私はinsert(int x)
logN で実行し続けようとしています。lastNode の操作は、各レベルでより長く、より広範囲になります。
誰かがそれを分解できますか?ありがとう