MoonBit月兔编程语言 现代编程思想 第五课 数据类型:树、二叉树、二叉搜索树、AVL树现代编程思想 树 Hongbo Zhang 1 数据结构:树 树 ⼆叉树 ⼆叉搜索树 ⼆叉平衡树 2 ⽣活中的树状图 ⽣活中有很多的数据的结构与⼀颗树相似 谱系图(⼜称,家族树) ⽂件结构 数学表达式 …… 3 树的逻辑结构 数据结构中,树是由有限个节点构成的具有层次关系的集合 节点是存储数据的结构,节点之间存在亲⼦关系:⽗节点和⼦节点 如果树不为空,则它拥有⼀个根节点:根节点没有⽗节点 任何节点不能是⾃⼰的后代节点:树中不能有环路 树的⼀条边指的是⼀对节点(u, v),其中u是v的⽗节点或者v是u的⽗节点 4 树的逻辑结构 这不是⼀颗树 5 树的逻辑结构 计算机中的树根节点在上,⼦节点在⽗节点下⽅ 相关术语 节点的深度:根节点下到这个节点的路径的⻓度(边的数量) 根节点深度为0 节点的⾼度:节点下到叶节点的最⻓路径的⻓度 叶节点⾼度为0 树的⾼度:根节点的⾼度 只有⼀个节点的树⾼度为0 空树(没有节点的树)⾼度为-1 也有的定义将树的⾼度等同于最⼤层次,以根为第⼀层 6 树的存储结构 树的存储⽅式有多种(以⼆叉树为例,省略节点存储的数据) 节点与⼦节点关系的列表: [ (0, 1), (0, 2), (1, 3) ] 代数数据结构定义 1. Node(0, 2. Node(1, 3. Leaf(3), 4. Empty)0 码力 | 29 页 | 1015.26 KB | 1 年前3
Hello 算法 1.0.0b1 Golang版. . . . . . . . . . . . . . . . . . 88 7. 树 89 7.1. 二叉树 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 7.2. 二叉树遍历 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 7.3. 二叉搜索树 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 7.4. AVL 树 * . . . . . . . . . . . . . . . . . . . . . . . . . 复杂度分析:数据结构与算法的评价维度、算法效率的评估方法。时间复杂度、空间复杂度,包括推算 方法、常见类型、示例等。 ‧ 数据结构:常用的基本数据类型,数据在内存中的存储方式、数据结构分类方法。数组、链表、栈、队列、 散列表、树、堆、图等数据结构,内容包括定义、优劣势、常用操作、常见类型、典型应用、实现方法等。 ‧ 算法:查找算法、排序算法、搜索与回溯、动态规划、分治算法,内容包括定义、使用场景、优劣势、时 空效率、实现方法、示例题目等。0 码力 | 190 页 | 14.71 MB | 1 年前3
Hello 算法 1.0.0b1 Swift版. . . . . . . . . . . . . . . . . . 92 7. 树 93 7.1. 二叉树 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 7.2. 二叉树遍历 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 7.3. 二叉搜索树 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 7.4. AVL 树 * . . . . . . . . . . . . . . . . . . . . . . . . . 复杂度分析:数据结构与算法的评价维度、算法效率的评估方法。时间复杂度、空间复杂度,包括推算 方法、常见类型、示例等。 ‧ 数据结构:常用的基本数据类型,数据在内存中的存储方式、数据结构分类方法。数组、链表、栈、队列、 散列表、树、堆、图等数据结构,内容包括定义、优劣势、常用操作、常见类型、典型应用、实现方法等。 ‧ 算法:查找算法、排序算法、搜索与回溯、动态规划、分治算法,内容包括定义、使用场景、优劣势、时 空效率、实现方法、示例题目等。0 码力 | 190 页 | 14.71 MB | 1 年前3
Hello 算法 1.0.0b1 Python版. . . . . . . . . . . . . . . . . . 83 7. 树 84 7.1. 二叉树 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 7.2. 二叉树遍历 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 7.3. 二叉搜索树 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 7.4. AVL 树 * . . . . . . . . . . . . . . . . . . . . . . . . . 复杂度分析:数据结构与算法的评价维度、算法效率的评估方法。时间复杂度、空间复杂度,包括推算 方法、常见类型、示例等。 ‧ 数据结构:常用的基本数据类型,数据在内存中的存储方式、数据结构分类方法。数组、链表、栈、队列、 散列表、树、堆、图等数据结构,内容包括定义、优劣势、常用操作、常见类型、典型应用、实现方法等。 ‧ 算法:查找算法、排序算法、搜索与回溯、动态规划、分治算法,内容包括定义、使用场景、优劣势、时 空效率、实现方法、示例题目等。0 码力 | 178 页 | 14.67 MB | 1 年前3
Hello 算法 1.0.0b1 C++版. . . . . . . . . . . . . . . . . . 90 7. 树 91 7.1. 二叉树 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 7.2. 二叉树遍历 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 7.3. 二叉搜索树 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 7.4. AVL 树 * . . . . . . . . . . . . . . . . . . . . . . . . . 复杂度分析:数据结构与算法的评价维度、算法效率的评估方法。时间复杂度、空间复杂度,包括推算 方法、常见类型、示例等。 ‧ 数据结构:常用的基本数据类型,数据在内存中的存储方式、数据结构分类方法。数组、链表、栈、队列、 散列表、树、堆、图等数据结构,内容包括定义、优劣势、常用操作、常见类型、典型应用、实现方法等。 ‧ 算法:查找算法、排序算法、搜索与回溯、动态规划、分治算法,内容包括定义、使用场景、优劣势、时 空效率、实现方法、示例题目等。0 码力 | 187 页 | 14.71 MB | 1 年前3
Hello 算法 1.0.0b1 Java版. . . . . . . . . . . . . . . . . . 90 7. 树 91 7.1. 二叉树 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 7.2. 二叉树遍历 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 7.3. 二叉搜索树 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 7.4. AVL 树 * . . . . . . . . . . . . . . . . . . . . . . . . . 复杂度分析:数据结构与算法的评价维度、算法效率的评估方法。时间复杂度、空间复杂度,包括推算 方法、常见类型、示例等。 ‧ 数据结构:常用的基本数据类型,数据在内存中的存储方式、数据结构分类方法。数组、链表、栈、队列、 散列表、树、堆、图等数据结构,内容包括定义、优劣势、常用操作、常见类型、典型应用、实现方法等。 ‧ 算法:查找算法、排序算法、搜索与回溯、动态规划、分治算法,内容包括定义、使用场景、优劣势、时 空效率、实现方法、示例题目等。0 码力 | 186 页 | 14.71 MB | 1 年前3
Hello 算法 1.0.0b2 Golang版. . . . . . . . . . . . . . . . . . 91 7. 树 92 7.1. 二叉树 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 7.2. 二叉树遍历 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 7.3. 二叉搜索树 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 7.4. AVL 树 * . . . . . . . . . . . . . . . . . . . . . . . . . 复杂度分析:数据结构与算法的评价维度、算法效率的评估方法。时间复杂度、空间复杂度,包括推算 方法、常见类型、示例等。 ‧ 数据结构:常用的基本数据类型,数据在内存中的存储方式、数据结构分类方法。数组、链表、栈、队列、 散列表、树、堆、图等数据结构,内容包括定义、优劣势、常用操作、常见类型、典型应用、实现方法等。 ‧ 算法:查找算法、排序算法、搜索与回溯、动态规划、分治算法,内容包括定义、使用场景、优劣势、时 空效率、实现方法、示例题目等。0 码力 | 202 页 | 15.73 MB | 1 年前3
Hello 算法 1.0.0b2 Swift版. . . . . . . . . . . . . . . . . . 92 7. 树 93 7.1. 二叉树 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 7.2. 二叉树遍历 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 7.3. 二叉搜索树 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 7.4. AVL 树 * . . . . . . . . . . . . . . . . . . . . . . . . . 复杂度分析:数据结构与算法的评价维度、算法效率的评估方法。时间复杂度、空间复杂度,包括推算 方法、常见类型、示例等。 ‧ 数据结构:常用的基本数据类型,数据在内存中的存储方式、数据结构分类方法。数组、链表、栈、队列、 散列表、树、堆、图等数据结构,内容包括定义、优劣势、常用操作、常见类型、典型应用、实现方法等。 ‧ 算法:查找算法、排序算法、搜索与回溯、动态规划、分治算法,内容包括定义、使用场景、优劣势、时 空效率、实现方法、示例题目等。0 码力 | 199 页 | 15.72 MB | 1 年前3
Hello 算法 1.0.0b2 Python版. . . . . . . . . . . . . . . . . . 84 7. 树 85 7.1. 二叉树 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 7.2. 二叉树遍历 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 7.3. 二叉搜索树 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 7.4. AVL 树 * . . . . . . . . . . . . . . . . . . . . . . . . . 复杂度分析:数据结构与算法的评价维度、算法效率的评估方法。时间复杂度、空间复杂度,包括推算 方法、常见类型、示例等。 ‧ 数据结构:常用的基本数据类型,数据在内存中的存储方式、数据结构分类方法。数组、链表、栈、队列、 散列表、树、堆、图等数据结构,内容包括定义、优劣势、常用操作、常见类型、典型应用、实现方法等。 ‧ 算法:查找算法、排序算法、搜索与回溯、动态规划、分治算法,内容包括定义、使用场景、优劣势、时 空效率、实现方法、示例题目等。0 码力 | 186 页 | 15.69 MB | 1 年前3
Hello 算法 1.0.0b2 C++版. . . . . . . . . . . . . . . . . . 90 7. 树 91 7.1. 二叉树 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 7.2. 二叉树遍历 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 7.3. 二叉搜索树 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 7.4. AVL 树 * . . . . . . . . . . . . . . . . . . . . . . . . . 复杂度分析:数据结构与算法的评价维度、算法效率的评估方法。时间复杂度、空间复杂度,包括推算 方法、常见类型、示例等。 ‧ 数据结构:常用的基本数据类型,数据在内存中的存储方式、数据结构分类方法。数组、链表、栈、队列、 散列表、树、堆、图等数据结构,内容包括定义、优劣势、常用操作、常见类型、典型应用、实现方法等。 ‧ 算法:查找算法、排序算法、搜索与回溯、动态规划、分治算法,内容包括定义、使用场景、优劣势、时 空效率、实现方法、示例题目等。0 码力 | 197 页 | 15.72 MB | 1 年前3
共 186 条
- 1
- 2
- 3
- 4
- 5
- 6
- 19













