摘要: 遍历方式 前序遍历 在前序遍历中,先访问根节点,然后递归地前序遍历左子树,最后递归地前序遍历右子树。 中序遍历 在中序遍历中,先递归地中序遍历左子树,然后访问根节点,最后递归地中序遍历右子树。 后序遍历 在后序遍历中,我们先递归地后序遍历访问左子树和右子树,最后访问根节点 实现代码 三种遍历的外部函 阅读全文
posted @ 2021-04-22 14:15 砥才人 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 解析树(语法树) 将树用于表示语言中句子, 可以分析句子的各种语法成分, 对句子的各种成分进行处理 语法分析树 程序设计语言的编译 词法、语法检查 从语法树生成目标代码 自然语言处理 机器翻译 语义理解 表达式解析 \(((7+3)*(5-2))\) 叶节点保存操作数,内部节点保存操作符 树中每个子 阅读全文
posted @ 2021-04-22 14:13 砥才人 阅读(318) 评论(0) 推荐(0) 编辑
摘要: 概念 一种基本的“非线性”数据结构——树 根 枝 叶 广泛应用于计算机科学的多个领域 操作系统 图形学 数据库 计算机网络 特征 第一个属性是层次性,即树是按层级构建的,越笼统就越靠近顶部,越具体则越靠近底部。 第二个属性是,一个节点的所有子节点都与另一个节点的所有子节点无关。比如,猫属的子节点有家 阅读全文
posted @ 2021-04-22 14:10 砥才人 阅读(254) 评论(0) 推荐(0) 编辑
摘要: 散列 Hasing 前言 如果数据项之间是按照大小排好序的话,就可以利用二分查找来降低算法复杂度。 现在我们进一步来构造一个新的数据结构, 能使得查找算法的复杂度降到O(1), 这种概念称为“散列Hashing“ 能够使得查找的次数降低到常数级别, 我们对数据项所处的位置就必须有更多的先验知识。 如 阅读全文
posted @ 2021-04-22 14:07 砥才人 阅读(334) 评论(0) 推荐(0) 编辑
摘要: 冒泡排序O(n²) —— bubbleSort 定义 冒泡排序多次遍历列表。它比较相邻的元素,将不合顺序的交换。每一轮遍历都将下一个最大值放到正确的位置上。本质上,每个元素通过“冒泡”找到自己所属的位置。 冒泡排序的算法思路在于对无序表进行多趟比较交换, 每趟包括了多次两两相邻比较, 并将逆序的数据 阅读全文
posted @ 2021-04-22 14:02 砥才人 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 顺序查找 定义 通过下标, 按照顺序来访问和查找数据项 要确定列表中是否存在需要查找的数据项 算法分析 要点 确定基本计算步骤 基本计算步骤必须要足够简单, 并且在算法中反复执行 在查找算法中, 这种基本计算步骤就是进行数据项的比对,比对的次数决定了算法复杂度 分类 无序列表顺序查找O(n) 数据在 阅读全文
posted @ 2021-04-22 13:41 砥才人 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 分治策略:解决问题的典型策略,分而治之 将问题分为若干更小规模的部分 通过解决每一个小规模部分问题,并将结果汇总得到原问题的解 递归算法与分治策略 递归三定律 体现了分支策略 应用相当广泛 排序 查找 遍历 求值等 优化问题 计算机科学中许多算法都是为了找到某些问题的最优解 两点之间最短路径 能最好 阅读全文
posted @ 2021-04-22 13:34 砥才人 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 定义 递归是一种解决问题的方法,它把一个问题分解为越来越小的子问题,直到问题的规模小到可以被很简单直接解决。 通常为了达到分解问题的效果,递归过程中要引入一个调用自身的函数。 举例 数列求和 def listsum(numlist): if len(numlist) == 1: return num 阅读全文
posted @ 2021-04-22 13:31 砥才人 阅读(309) 评论(0) 推荐(0) 编辑
摘要: 无序表链表 定义 一种数据项按照相对位置存放的数据集 抽象数据类型无序列表 UnorderedList 方法 list() 创建一个新的空列表。它不需要参数,而返回一个空列表。 add(item) 将新项添加到列表,没有返回值。假设元素不在列表中。 remove(item) 从列表中删除元素。需要一 阅读全文
posted @ 2021-04-22 13:21 砥才人 阅读(228) 评论(0) 推荐(0) 编辑
摘要: 定义 双端队列(deque 或 double-ended queue)与队列类似,也是一系列元素的有序组合。其两端称为队首(front)和队尾(rear),元素在到达两端之前始终位于双端队列中。 元素可以从两端插入,也可以从两端删除。 数据项不满足严格的“后进先出”或“先进先出”顺序,需自行维护 抽 阅读全文
posted @ 2021-04-22 13:13 砥才人 阅读(134) 评论(0) 推荐(0) 编辑