数据结构与算法分析学习笔记
文章平均质量分 68
weixin_46574339
这个作者很懒,什么都没留下…
展开
-
数据结构与算法学习笔记——排序算法C++实现
数据结构与算法学习笔记——排序算法C++实现插入排序代码实现归并排序代码实现快排代码实现堆排代码实现1代码实现2主函数代码 插入排序 平均时间复杂度为O(N^2) 插入排序是一种简单排序算法,简单排序算法的平均时间复杂度不会达到O(N^2)以下(因为每次交换相邻元素,逆序只减少1) 代码实现 /** * 插入排序 * @param a 数组指针 * @param asize 数组长度 */ template <typename T> void InsertionSort(T *a,原创 2021-03-15 20:25:40 · 121 阅读 · 0 评论 -
数据结构与算法学习笔记——图 C++实现
数据结构与算法学习笔记——图 C++实现1 概念2 图的表示方法3 算法拓扑排序图的搜索算法广度优先搜索(BFS)深度优先搜索(DFS)(单源)最短路径算法无权重图的最短路径算法有权重图的最短路径算法迪杰斯特拉算法Prim算法克鲁斯卡尔算法4 代码实现 1 概念 图是有限个互异的顶点和点对儿(边)的集合。图形结构的结点可以有多个前驱和多个后继 其他概念: 有向图、无向图; 权重; 邻接、路径、路径的长度、简单路径; 回路、有向无环图(DAG); 连通图、强连通图、基础图、弱连通图、完全图(完全图一定是连通图原创 2021-02-28 20:21:02 · 164 阅读 · 0 评论 -
数据结构与算法学习笔记——二叉树 C++实现
数据结构与算法学习笔记——二叉树 C++实现二叉树1 特点2 遍历的方法前序遍历后序遍历中序遍历层序遍历3 二叉树的实现二叉查找树(BST) ADT1 特点2 包含的操作3 BST ADT实现 二叉树 1 特点 二叉树是所有结点的子结点都不超过两个的树 关于二叉树的概念:完美二叉树、完全二叉树 2 遍历的方法 前序遍历 先访问根节点,再访问每一个孩子 后序遍历 先访问每一个孩子再访问根结点 中序遍历 二叉树独有的遍历方式 先访问左孩子,再访问根节点,再访问右孩子 此处应该有图 层序遍历 先访问第n层,再访问原创 2021-02-17 20:46:16 · 137 阅读 · 0 评论 -
数据结构与算法学习笔记——树 C++实现
数据结构与算法学习笔记——树 C++实现1 特点2 遍历的方法前序遍历后序遍历层序遍历3 实现 1 特点 树形结构,每个结点(除了根结点)具有唯一的前驱,可以有多个后继 树是递归定义的:一个非空的树,有一个根结点、以及0个或若干个非空子树,子树与根结点由一条边相连(子树中又有自己的根结点并可以有子结点、甚至子树的子树) 由于树是递归定义的,因此树的建立、删除、遍历以及后面BST ADT的一些操作都可以用遍历的方式实现 关于树的概念:子结点和父结点、叶子结点、兄弟、路径和路径长度、(一结点的)深度和高度、(一原创 2021-02-17 15:19:54 · 130 阅读 · 0 评论 -
数据结构与算法学习笔记——栈ADT C++实现
数据结构与算法学习笔记——栈ADT C++实现1 特点2 包含的操作3 实现方式3.1 基于数组实现(应用较多)3.2 基于单链表实现 1 特点 栈的数据结构为线性结构 栈只能在同一位置进行插入和删除,这个位置叫做栈顶。后进先出(LIFO),生活中的例子有坐电梯、去西红门绞肉机坐地铁 2 包含的操作 入栈(压栈) 出栈(弹出) 读栈顶元素 3 实现方式 3.1 基于数组实现(应用较多) 基于数组实现(非vector)的空间是静态的,空间不能再扩展,因此会出现空间不够的情况;但是从ADT角度出发不会有空原创 2021-02-12 21:58:23 · 939 阅读 · 1 评论 -
数据结构与算法学习笔记——队列ADT C++实现
数据结构与算法学习笔记——队列ADT C++实现1 特点2 包含的操作3 实现方式4 队列与循环队列4.1 队列4.2 循环队列 1 特点 队列的数据结构为线性结构 队列只能在一端完成插入,在另一端完成删除。先进先出(FIFO),生活中的例子有买票排队、打印机的打印队列 2 包含的操作 入队列 出队列 3 实现方式 基于数组实现 4 队列与循环队列 4.1 队列 编程时主要考虑的是指针移动操作和数据操作的顺序,以及空间是否为满/空(相应的,不能入/出队列) 存在的缺点是空间越用越少 Quence.h原创 2021-02-12 21:28:45 · 321 阅读 · 1 评论 -
数据结构与算法学习笔记——List ADT C++实现
这里写目录标题一级目录二级目录三级目录 一级目录 二级目录 三级目录原创 2021-02-12 20:39:58 · 1068 阅读 · 0 评论 -
数据结构与算法学习笔记——基本概念
数据结构与算法 C++实现笔记——线性表线性表线性表的定义线性表的功能功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片代码实现SmartyPants如何创建一个注脚注释也是必不可少的KaTeX数学公式UML 图表FLowchart流程图参考文献导出导入 线性表 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 线性表的定义 线性表的功能 我们对Markdow原创 2021-02-12 17:32:40 · 113 阅读 · 2 评论