将关键子13,97,51,38,25,21,84,73,62,29依次插入到初始为空的的小根堆H中,得到的H是
时间: 2024-04-17 07:23:14 浏览: 216
将关键字依次插入空的小根堆H中的过程如下:
1. 插入13:H = [13]
2. 插入97:H = [13, 97]
3. 插入51:H = [13, 97, 51]
4. 插入38:H = [13, 38, 51, 97]
5. 插入25:H = [13, 25, 51, 97, 38]
6. 插入21:H = [13, 21, 51, 97, 38, 25]
7. 插入84:H = [13, 21, 51, 97, 38, 25, 84]
8. 插入73:H = [13, 21, 51, 73, 38, 25, 84, 97]
9. 插入62:H = [13, 21, 51, 73, 38, 25, 84, 97, 62]
10. 插入29:H = [13, 21, 29, 73, 38, 25, 51, 97, 62, 84]
最终得到的小根堆H是[13, 21, 29, 73, 38, 25, 51, 97, 62, 84]。
相关问题
将关键字13,97,51,38,25,21,84,73,62,29依次插入到初始为空的的小根堆H中,得到的H是
将关键字依次插入空的小根堆H中的过程如下:
1. 插入13:H = [13]
2. 插入97:H = [13, 97]
3. 插入51:H = [13, 97, 51]
4. 插入38:H = [13, 38, 51, 97]
5. 插入25:H = [13, 25, 51, 97, 38]
6. 插入21:H = [13, 21, 51, 97, 38, 25]
7. 插入84:H = [13, 21, 51, 97, 38, 25, 84]
8. 插入73:H = [13, 21, 51, 73, 38, 25, 84, 97]
9. 插入62:H = [13, 21, 51, 73, 38, 25, 84, 97, 62]
10. 插入29:H = [13, 21, 29, 73, 38, 25, 51, 97, 62, 84]
最终得到的小根堆H是[13, 21, 29, 73, 38, 25, 51, 97, 62, 84]。
将一系列给定数字顺序插入一个初始为空的二叉搜索树(定义为左子树键值大,右子树键值小),你需要判断最后的树是否一棵完全二叉树,并且给出其层序遍历的结果。输入第一行给出一个不超过20的正整数N;第二行给出N个互不相同的正整数,其间以空格分隔。将输入的N个正整数顺序插入一个初始为空的二叉搜索树。在第一行中输出结果树的层序遍历结果,数字间以1个空格分隔,行的首尾不得有多余空格。第二行输出YES,如果该树是完全二叉树;否则输出NO。9 38 45 42 24 58 30 67 12 51
根据二叉搜索树的定义,每次插入一个节点时,需要从根节点开始遍历,如果插入节点的值比当前节点的值小,则继续遍历左子树;反之则遍历右子树。如果遇到一个空节点,则在该节点处插入新节点。
插入完所有节点后,可以通过层次遍历的方式输出二叉搜索树的节点值,并判断该树是否为完全二叉树。
完全二叉树的定义:对于一棵有n个节点的二叉树,按照从上到下、从左到右的顺序依次对每个节点进行编号,如果编号为i(1<=i<=n)的节点与满二叉树中编号为i的节点在二叉树中的位置相同,那么这棵二叉树就是一棵完全二叉树。
下面是实现该题的Python代码:
```python
class TreeNode:
def __init__(self, val):
self.val = val
self.left = None
self.right = None
def insert(root, val):
if not root:
root = TreeNode(val)
elif val < root.val:
root.left = insert(root.left, val)
else:
root.right = insert(root.right, val)
return root
def level_order(root):
queue = [root]
res = []
while queue:
node = queue.pop(0)
res.append(node.val)
if node.left:
queue.append(node.left)
if node.right:
queue.append(node.right)
return res
def is_complete(root):
queue = [root]
flag = False
while queue:
node = queue.pop(0)
if node.left:
if flag:
return False
queue.append(node.left)
else:
flag = True
if node.right:
if flag:
return False
queue.append(node.right)
else:
flag = True
return True
n = int(input())
nums = list(map(int, input().split()))
root = None
for num in nums:
root = insert(root, num)
res = level_order(root)
print(' '.join(map(str, res)))
if is_complete(root):
print('YES')
else:
print('NO')
```
输入样例:
```
10
9 38 45 42 24 58 30 67 12 51
```
输出样例:
```
9 38 12 24 45 30 58 42 51 67
YES
```
阅读全文
相关推荐
![-](https://img-home.csdnimg.cn/images/20241231044955.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![txt](https://img-home.csdnimg.cn/images/20241231045021.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231044955.png)
![-](https://img-home.csdnimg.cn/images/20241231044833.png)
![-](https://img-home.csdnimg.cn/images/20241231045021.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)