Skip to content

Commit 3cdf86a

Browse files
committedOct 15, 2019
b tree
1 parent 5f49b94 commit 3cdf86a

24 files changed

+171
-53
lines changed
 

‎Linked_list/test.py

-49
This file was deleted.

‎Tree/B_tree/img/b-tree.jpg

41.3 KB
Loading

‎Tree/B_tree/img/delete-1.jpg

15.5 KB
Loading

‎Tree/B_tree/img/delete-2.jpg

15.6 KB
Loading

‎Tree/B_tree/img/delete-3.jpg

15.4 KB
Loading

‎Tree/B_tree/img/delete-4.jpg

13.1 KB
Loading

‎Tree/B_tree/img/delete-5.jpg

12.4 KB
Loading

‎Tree/B_tree/img/delete-6.jpg

14.8 KB
Loading

‎Tree/B_tree/img/delete-7.jpg

15.1 KB
Loading

‎Tree/B_tree/img/delete-8.jpg

13.4 KB
Loading

‎Tree/B_tree/img/highth-of-b-tree.gif

909 Bytes
Loading

‎Tree/B_tree/img/insert-1.jpg

3.1 KB
Loading

‎Tree/B_tree/img/insert-2.jpg

6.43 KB
Loading

‎Tree/B_tree/img/insert-3.jpg

8.3 KB
Loading

‎Tree/B_tree/img/insert-4.jpg

9.41 KB
Loading

‎Tree/B_tree/img/insert-5.jpg

12.4 KB
Loading

‎Tree/B_tree/img/insert-6.jpg

13.9 KB
Loading

‎Tree/B_tree/img/insert-7.jpg

12.7 KB
Loading

‎Tree/B_tree/img/insert-8.jpg

16 KB
Loading

‎Tree/B_tree/readme.md

+145
Large diffs are not rendered by default.
4.14 KB
Loading
6.18 KB
Loading

‎Tree/Binary_tree/readme.md

+23-4
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,28 @@
11
# 二叉树
22

33
## 概念
4-
二叉树是有限个结点的集合,这个集合或者是空集,或者是由一个根结点和两株互不相交的二叉树组成,其中一株叫根的做左子树,另一棵叫做根的右子树
4+
二叉树(Binary tree)是有限个结点的集合,这个集合或者是空集,或者是由一个根结点和两株互不相交的二叉树组成,其中一株叫根的做“左子树”,另一棵叫做根的“右子树”。二叉树的分支具有左右次序,不能随意颠倒
55
## 性质
6-
7-
1. 在二叉树中第 i 层的结点数最多为2^(i-1)(i ≥ 1)
8-
2. 高度为 k 的二叉树其结点总数最多为2^k-1( k ≥ 1)
6+
1. 在二叉树中第 i 层的结点数最多为 2^(i-1)(i ≥ 1)
7+
2. 高度为 k 的二叉树其结点总数最多为 2^k-1( k ≥ 1)
98
3. 对任意的非空二叉树 T ,如果叶结点的个数为 n0,而其度为 2 的结点数为 n2,则:n0 = n2 + 1
9+
## 分类
10+
### 满二叉树
11+
如果二叉树中除了叶子结点,每个结点的度都为 2,则此二叉树称为满二叉树。
12+
![满二叉树](img/full-bin-tree.gif)
13+
14+
满二叉树除了满足普通二叉树的性质,还具有以下性质:
15+
1. 满二叉树中第 i 层的节点数为 2^(n-1) 个。
16+
2. 深度为 k 的满二叉树必有 2^k-1 个节点 ,叶子数为 2^(k-1)。
17+
3. 满二叉树中不存在度为 1 的节点,每一个分支点中都两棵深度相同的子树,且叶子节点都在最底层。
18+
4. 具有 n 个节点的满二叉树的深度为 log2(n+1)。
19+
20+
### 完全二叉树
21+
如果二叉树中除去最后一层节点为满二叉树,且最后一层的结点依次从左到右分布,则此二叉树被称为完全二叉树。
22+
![完全二叉树示意图](img/wanquan-bin-tree.gif)
23+
完全二叉树除了具有普通二叉树的性质,它自身也具有一些独特的性质,比如说,n 个结点的完全二叉树的深度为 ⌊log2n⌋+1。(符号为向下取整)
24+
25+
对于任意一个完全二叉树来说,如果将含有的结点按照层次从左到右依次标号(如上图 a)),对于任意一个结点 i ,完全二叉树还有以下几个结论成立:
26+
当 i>1 时,父亲结点为结点 [i/2] 。(i=1 时,表示的是根结点,无父亲结点)
27+
如果 2*i>n(总结点的个数) ,则结点 i 肯定没有左孩子(为叶子结点);否则其左孩子是结点 2*i 。
28+
如果 2*i+1>n ,则结点 i 肯定没有右孩子;否则右孩子是结点 2*i+1 。

‎Tree/readme.md

+3
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@
33
## 概念
44
在计算机科学中,树(tree)是一种抽象数据类型(ADT)或是实现这种抽象数据类型的数据结构,用来模拟具有树状结构性质的数据集合。它是由n(n>0)个有限节点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。
55

6+
## 生活实例
7+
族谱
8+
69
## 特点:
710

811
- 每个节点都只有有限个子节点或无子节点;

0 commit comments

Comments
 (0)
Please sign in to comment.