Alterna · учебный материал
树树及其属性
信息学中的树木:二元树、BST、堆积、圆圈、公式和实例,EGE第12号。
Что в этом материале
- 主要属性
- 二进树树
- 圆圆木
- 小型试验:5个问题
Содержание и основные понятия
返回目录
第25章 第25.1页
树树及其属性
这棵树是一个没有周期的连接图。 它建立在 BST 、 堆叠、 文件系统、 组织等级之上 。
树树树
主要特征是,在任何两个顶端之间,都有一种确切的方法。 树是BST、堆积、文件系统、XML和DOM的核心。
全球环境基金,全环基金
PIF 太平洋岛屿论坛
EGE 第12号
01
主要属性
V, E, root, 身高, 深度
在树上,
V
顶部是直直的
E = V − 1
橡胶。
根根
树通常只有一个根,其余的则有后代。
高度高度
- 从根到叶的最长旅程长度。
最高深度
- 从根到这次首脑会议
清单清单清单列表清单清单
- 顶部没有后代
东道主主
- 顶部至少有一个后代
02
二进树树
每一结节都有不超过两个孩子
B .B
二进树树
每节不超过两个孩子:
左左
和
右右右
.
完整二进制树的结数 h:
N(h) = 2
h+1
− 1
例如:h=3~N=24-1=15海里。
BST 二进搜索树
B .B
BST
对于每个节点,都符合规则:左侧支持中的所有键都较小,右侧更大。这允许在h是高度的O(h)之后找到元素。
如果树是平衡的, h x log2N, 并且O(log N) 的搜索工作。 如果到期( 列成列表) , 则O( N) 是 。
相当多
很多。
是一个几乎完整的二进制树,其中每个节点的价值是其后代的 ⁇ (min-cush)或 ⁇ (max-cuch),用于金字塔分拣和优先级。
BFS和外勤部树木
宽绕行( BFS)
- 在狮子L+1之前访问所有层次的狮子L, 使用这条线寻找树上最短的路径, 一种水平到水平的海豹。
深处(国防和安全部队)
- 我们尽可能深入一个分支,然后回去,三个选项:订单前、订单(左)、订单后。
BFS(级别)
5 → 3, 7 → 1, 4, 6, 8
DFS Preorder
5, 3, 1, 4, 7, 6, 8
DFS Inorder
1, 3, 4, 5, 6, 7, 8
DFS Postorder
1, 4, 3, 6, 8, 7, 5
03
圆圆木
3 经典的超过二进制树的方法
直接(先令)
左边的根根
К, Л, П
对称(不顺序)
右向左根
Л, К, П
反向(邮购)
左 右根
Л, П, К
示例:带钥匙的BST 5、3、7、1、4、6、8
5
3
7
1
4
6
8
①
②
③
④
⑤
⑥
⑦
捕食者 :
①→②→③→④→⑤→⑥→⑦ →
5, 3, 1, 4, 7, 6, 8
订单(信用证):
③→②→④→①→⑥→⑤→⑦ →
1, 3, 4, 5, 6, 7, 8
分类了!
后期命令(PCA):
③→④→②→⑥→⑦→⑤→① →
1, 4, 3, 6, 8, 7, 5
如何读取树 :
左边的后裔 < 红色 < 右边的后裔。
class BSTNode:
def __init__(self, key):
self.key = key
self.left = None
self.right = None
def bst_insert(root, key):
if root is None: return BSTNode(key)
if key < root.key: root.left = bst_insert(root.left, key)
else: root.right = bst_insert(root.right, key)
return root
def bst_search(root, key):
while root:
if key == root.key: return root
root = root.left if key < root.key else root.right
return None
def bst_inorder(root, res=[]):
if root:
bst_inorder(root.left, res)
res.append(root.key)
bst_inorder(root.right, res)
# Сборка дерева:
root = None
for k in [5, 3, 7, 1, 4, 6, 8]:
root = bst_insert(root, k)
seq = []; bst_inorder(root, seq)
print(seq) # [1, 3, 4, 5, 6, 7, 8]
🌲
BST: 粘贴和绕行
🎯
小型试验:5个问题
XP: 0
🧩
主题的快速测试
五个问题,每个正确答案20XP