我正在使用堆,我不确定这是否是正确的类别张贴这个问题,但问题是:
按该顺序将键2 4 5 1 3 6插入堆中。绘制结果.
我画了堆(我附上了图像),但我不确定我是否根据问题正确地画了它。
在这里画堆
发布于 2016-08-12 17:06:19
不确定你的形象是否正确。让我们在输入项时构建堆。
当你插入2时,它就变成了根。添加4将使4的根和2必须进入左边的子树,以满足形状属性。所以你有你的数组,[4, 2]。
现在,将5添加到数组的末尾,并将其泡起来。这就导致了[5, 4, 2]。添加1将为您提供[5, 4, 2, 1]。该树表示是:
5
/ \
4 2
/
1现在,当您添加3时,您将得到[5, 4, 2, 1, 3]。3的父母是4,所以没有必要把它泡起来,你可以得到:
5
/ \
4 2
/ \
1 3最后,将6添加到数组中并获取[5, 4, 2, 1, 3, 6]。你得把6升起来。6的父级为2,因此,在第一次将其鼓起时,您将得到[5, 4, 6, 1, 3, 2],而再次冒泡则会给您[6, 4, 5, 1, 3, 2]。树的表示是:
6
/ \
4 5
/ \ /
1 3 2https://stackoverflow.com/questions/36681881
复制相似问题