📜  门| GATE-CS-2006 |第77章

📅  最后修改于: 2021-07-02 15:57:53             🧑  作者: Mango

3进制的最大堆就像二进制的最大堆一样,但是节点有2个子节点,而不是2个子节点。三元堆可以用数组表示,如下所示:根存储在第一个位置a [0]中,下一层的节点从左到右从a [1]到a [3]存储]。从[4]位置开始存储树第二层中从左到右的节点。可以通过将x放置在位置a [n]并将其向上推到树上来满足stack属性,将项x插入包含n个项的3元堆中。

假设将元素7、2、10和4依次插入到在上述问题中找到的有效三元最大堆中,以下哪一项是表示结果堆的数组中的项目序列?

(A) 10、7、9、8、3、1、5、2、6、4
(B) 10、9、8、7、6、5、4、3、2、1
(C) 10、9、4、5、7、6、8、2、1、3
(D) 10、8、6、9、7、2、3、4、1、5答案: (A)
说明:插入7之后

9
                                      /   |   \
                                    /     |     \
                                  7       6       8
                               / | \
                             /   |  \
                            3    1    5    

插入2后

9
                                      /    |   \
                                    /      |     \
                                  7        6       8
                               / | \       /
                             /   |  \     /
                            3    1    5  2

插入10后

10
                             /    |   \
                           /      |     \
                        7         9       8
                    / | \       / |
                  /   |  \     /  |
                3    1    5  2    6

插入4后

10
                             /   |   \
                           /     |     \
                         7        9       8
                      / | \      / | \
                    /   |  \    /  |   \
                  3    1    5  2   6    4

这个问题的测验