MoonBit月兔编程语言 现代编程思想 第五课 数据类型:树、二叉树、二叉搜索树、AVL树
0 码力 | 29 页 | 1015.26 KB | 1 年前3Hello 算法 1.0.0b1 JavaScript版
. . . . . . . . . . . . . . . . 89 7. 树 90 7.1. 二叉树 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 7.2. 二叉树遍历 . . . . . . . . . . . . . . . . . . . . . . . . < 线性阶 < 平方阶 < 指数阶 Figure 2‑10. 空间复杂度的常见类型 2. 复杂度分析 hello‑algo.com 30 � 部分示例代码需要一些前置知识,包括数组、链表、二叉树、递归算法等。如果遇到看不懂的 地方无需担心,可以在学习完后面章节后再来复习,现阶段先聚焦在理解空间复杂度含义和推 算方法上。 常数阶 ?(1) 常数阶常见于数量与输入数据大小 ? 无关的常量、变量、对象。 2‑12. 递归函数产生的平方阶空间复杂度 指数阶 ?(2?) 指数阶常见于二叉树。高度为 ? 的「满二叉树」的结点数量为 2? − 1 ,使用 ?(2?) 空间。 2. 复杂度分析 hello‑algo.com 33 // === File: space_complexity.js === /* 指数阶(建立满二叉树) */ function buildTree(n) { if (n ===0 码力 | 185 页 | 14.70 MB | 1 年前3Hello 算法 1.0.0b1 Python版
. . . . . . . . . . . . . . . . 83 7. 树 84 7.1. 二叉树 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 7.2. 二叉树遍历 . . . . . . . . . . . . . . . . . . . . . . . . ) < ?(?2) < ?(2?) 常数阶 < 对数阶 < 线性阶 < 平方阶 < 指数阶 Figure 2‑10. 空间复杂度的常见类型 � 部分示例代码需要一些前置知识,包括数组、链表、二叉树、递归算法等。如果遇到看不懂的 地方无需担心,可以在学习完后面章节后再来复习,现阶段先聚焦在理解空间复杂度含义和推 算方法上。 常数阶 ?(1) 常数阶常见于数量与输入数据大小 ? 无关的常量、变量、对象。 Figure 2‑12. 递归函数产生的平方阶空间复杂度 指数阶 ?(2?) 指数阶常见于二叉树。高度为 ? 的「满二叉树」的结点数量为 2? − 1 ,使用 ?(2?) 空间。 # === File: space_complexity.py === def build_tree(n): """ 指数阶(建立满二叉树) """ if n == 0: return None root = TreeNode(0)0 码力 | 178 页 | 14.67 MB | 1 年前3Hello 算法 1.0.0b1 TypeScript 版
. . . . . . . . . . . . . . . . 88 7. 树 89 7.1. 二叉树 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 7.2. 二叉树遍历 . . . . . . . . . . . . . . . . . . . . . . . . < 线性阶 < 平方阶 < 指数阶 Figure 2‑10. 空间复杂度的常见类型 2. 复杂度分析 hello‑algo.com 30 � 部分示例代码需要一些前置知识,包括数组、链表、二叉树、递归算法等。如果遇到看不懂的 地方无需担心,可以在学习完后面章节后再来复习,现阶段先聚焦在理解空间复杂度含义和推 算方法上。 常数阶 ?(1) 常数阶常见于数量与输入数据大小 ? 无关的常量、变量、对象。 递归函数产生的平方阶空间复杂度 2. 复杂度分析 hello‑algo.com 33 指数阶 ?(2?) 指数阶常见于二叉树。高度为 ? 的「满二叉树」的结点数量为 2? − 1 ,使用 ?(2?) 空间。 // === File: space_complexity.ts === /* 指数阶(建立满二叉树) */ function buildTree(n: number): TreeNode | null0 码力 | 186 页 | 14.71 MB | 1 年前3Hello 算法 1.0.0b1 C++版
. . . . . . . . . . . . . . . . 90 7. 树 91 7.1. 二叉树 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 7.2. 二叉树遍历 . . . . . . . . . . . . . . . . . . . . . . . . < 线性阶 < 平方阶 < 指数阶 Figure 2‑10. 空间复杂度的常见类型 2. 复杂度分析 hello‑algo.com 30 � 部分示例代码需要一些前置知识,包括数组、链表、二叉树、递归算法等。如果遇到看不懂的 地方无需担心,可以在学习完后面章节后再来复习,现阶段先聚焦在理解空间复杂度含义和推 算方法上。 常数阶 ?(1) 常数阶常见于数量与输入数据大小 ? 无关的常量、变量、对象。 2‑12. 递归函数产生的平方阶空间复杂度 指数阶 ?(2?) 指数阶常见于二叉树。高度为 ? 的「满二叉树」的结点数量为 2? − 1 ,使用 ?(2?) 空间。 2. 复杂度分析 hello‑algo.com 33 // === File: space_complexity.cpp === /* 指数阶(建立满二叉树) */ TreeNode* buildTree(int n) { if0 码力 | 187 页 | 14.71 MB | 1 年前3Hello 算法 1.0.0b1 Java版
. . . . . . . . . . . . . . . . 90 7. 树 91 7.1. 二叉树 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 7.2. 二叉树遍历 . . . . . . . . . . . . . . . . . . . . . . . . < 线性阶 < 平方阶 < 指数阶 2. 复杂度分析 hello‑algo.com 30 Figure 2‑10. 空间复杂度的常见类型 � 部分示例代码需要一些前置知识,包括数组、链表、二叉树、递归算法等。如果遇到看不懂的 地方无需担心,可以在学习完后面章节后再来复习,现阶段先聚焦在理解空间复杂度含义和推 算方法上。 常数阶 ?(1) 常数阶常见于数量与输入数据大小 ? 无关的常量、变量、对象。 } Figure 2‑12. 递归函数产生的平方阶空间复杂度 指数阶 ?(2?) 指数阶常见于二叉树。高度为 ? 的「满二叉树」的结点数量为 2? − 1 ,使用 ?(2?) 空间。 // === File: space_complexity.java === /* 指数阶(建立满二叉树) */ TreeNode buildTree(int n) { if (n == 0) return0 码力 | 186 页 | 14.71 MB | 1 年前3Hello 算法 1.0.0b1 Swift版
. . . . . . . . . . . . . . . . 92 7. 树 93 7.1. 二叉树 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 7.2. 二叉树遍历 . . . . . . . . . . . . . . . . . . . . . . . . < 线性阶 < 平方阶 < 指数阶 2. 复杂度分析 hello‑algo.com 30 Figure 2‑10. 空间复杂度的常见类型 � 部分示例代码需要一些前置知识,包括数组、链表、二叉树、递归算法等。如果遇到看不懂的 地方无需担心,可以在学习完后面章节后再来复习,现阶段先聚焦在理解空间复杂度含义和推 算方法上。 常数阶 ?(1) 常数阶常见于数量与输入数据大小 ? 无关的常量、变量、对象。 33 Figure 2‑12. 递归函数产生的平方阶空间复杂度 指数阶 ?(2?) 指数阶常见于二叉树。高度为 ? 的「满二叉树」的结点数量为 2? − 1 ,使用 ?(2?) 空间。 // === File: space_complexity.swift === /* 指数阶(建立满二叉树) */ func buildTree(n: Int) -> TreeNode? { if n ==0 码力 | 190 页 | 14.71 MB | 1 年前3Hello 算法 1.0.0b1 Golang版
. . . . . . . . . . . . . . . . 88 7. 树 89 7.1. 二叉树 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 7.2. 二叉树遍历 . . . . . . . . . . . . . . . . . . . . . . . . ) < ?(?2) < ?(2?) 常数阶 < 对数阶 < 线性阶 < 平方阶 < 指数阶 Figure 2‑10. 空间复杂度的常见类型 � 部分示例代码需要一些前置知识,包括数组、链表、二叉树、递归算法等。如果遇到看不懂的 地方无需担心,可以在学习完后面章节后再来复习,现阶段先聚焦在理解空间复杂度含义和推 算方法上。 常数阶 ?(1) 常数阶常见于数量与输入数据大小 ? 无关的常量、变量、对象。 } Figure 2‑12. 递归函数产生的平方阶空间复杂度 指数阶 ?(2?) 指数阶常见于二叉树。高度为 ? 的「满二叉树」的结点数量为 2? − 1 ,使用 ?(2?) 空间。 // === File: space_complexity.go === /* 指数阶(建立满二叉树) */ func buildTree(n int) *treeNode { if n == 0 {0 码力 | 190 页 | 14.71 MB | 1 年前3Hello 算法 1.0.0b2 Python版
. . . . . . . . . . . . . . . . 84 7. 树 85 7.1. 二叉树 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 7.2. 二叉树遍历 . . . . . . . . . . . . . . . . . . . . . . . . ) < ?(?2) < ?(2?) 常数阶 < 对数阶 < 线性阶 < 平方阶 < 指数阶 Figure 2‑10. 空间复杂度的常见类型 � 部分示例代码需要一些前置知识,包括数组、链表、二叉树、递归算法等。如果遇到看不懂的 地方无需担心,可以在学习完后面章节后再来复习,现阶段先聚焦在理解空间复杂度含义和推 算方法上。 常数阶 ?(1) 常数阶常见于数量与输入数据大小 ? 无关的常量、变量、对象。 递归函数产生的平方阶空间复杂度 指数阶 ?(2?) 指数阶常见于二叉树。高度为 ? 的「满二叉树」的结点数量为 2? − 1 ,使用 ?(2?) 空间。 # === File: space_complexity.py === def build_tree(n: int) -> TreeNode | None: """ 指数阶(建立满二叉树) """ if n == 0: return None0 码力 | 186 页 | 15.69 MB | 1 年前3Hello 算法 1.0.0b2 C++版
. . . . . . . . . . . . . . . . 90 7. 树 91 7.1. 二叉树 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 7.2. 二叉树遍历 . . . . . . . . . . . . . . . . . . . . . . . . < 线性阶 < 平方阶 < 指数阶 Figure 2‑10. 空间复杂度的常见类型 2. 复杂度分析 hello‑algo.com 30 � 部分示例代码需要一些前置知识,包括数组、链表、二叉树、递归算法等。如果遇到看不懂的 地方无需担心,可以在学习完后面章节后再来复习,现阶段先聚焦在理解空间复杂度含义和推 算方法上。 常数阶 ?(1) 常数阶常见于数量与输入数据大小 ? 无关的常量、变量、对象。 2‑12. 递归函数产生的平方阶空间复杂度 指数阶 ?(2?) 指数阶常见于二叉树。高度为 ? 的「满二叉树」的结点数量为 2? − 1 ,使用 ?(2?) 空间。 2. 复杂度分析 hello‑algo.com 33 // === File: space_complexity.cpp === /* 指数阶(建立满二叉树) */ TreeNode* buildTree(int n) { if0 码力 | 197 页 | 15.72 MB | 1 年前3
共 121 条
- 1
- 2
- 3
- 4
- 5
- 6
- 13