![](https://img-blog.csdnimg.cn/20190927151043371.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
《数据结构》严蔚敏版
《数据结构》第二版
ScarboroughFair#
这个作者很懒,什么都没留下…
展开
-
PTA函数题相关接口(未完)
目录1.顺序表顺序表的查找顺序表的插入 顺序表的删除顺序表有序插入2.链表带头结点单链表的查询带头结点单链表的插入带头结点单链表的删除两个有序链表序列的合并3.栈和队列顺序栈的基本运算循环队列出队入队(详细见博客http://t.csdn.cn/S8ep1)循环队列入队出队操作(详细见博客http://t.csdn.cn/mkfmL)另类堆栈 十进制转二进制(顺序栈设计和应用)进制转换排队叫号系统5.二叉树 求叶子结点个数后缀表达式哈夫曼编码二叉树的遍历统计二叉树结点个数求二叉树的深度6.图图的创建(邻接原创 2022-06-07 15:41:51 · 3299 阅读 · 0 评论 -
线性表的查找
目录1.顺序表查找算法顺序查找的实现(带哨兵)顺序查找时间效率分析 顺序查找的特点2.二分查找(详细见专栏:Acwing基础课)二分查找的实现 二分查找的性能分析——判定树 二分查找特点3.分块查找分块查找的实现 分块查找性能分析分块查找特点 4.插值查找(了解)5. 斐波那契查找 改进:运用&,for循环后面加上分号改进:把待查关键字key存入表头(哨兵),从后往前逐个比较,可以免去查找过程中每一步都要检测是否查找完毕,加快速度当ST.length较大时,此改进能使进行一次查找所需的平均时间几乎减少原创 2022-07-04 23:06:18 · 354 阅读 · 6 评论 -
AOE网关键路径
目录1.概念 2.关键路径算法的实现 四个需要的变量求关键路径的步骤 其中stack2用来存储拓扑序列,以便后面求关键路径时使用。下面是改进过的求拓扑序列算法 下面指代的加粗的部分即为上述代码中注释加上##的部分下面展示关键路径的算法代码...原创 2022-06-08 18:46:29 · 557 阅读 · 0 评论 -
AOV网拓扑排序
AOV网的特点 拓扑排序概念拓扑排序的方法 检测AOV网中是否存在环的方法 涉及的结构代码原创 2022-06-08 13:44:31 · 194 阅读 · 0 评论 -
最短路径:Dijikstra算法/Floyd算法
目录1.基础2.单源最短路径——Dijikstra算法3.所有顶点间的最短路径——Floyd算法 思路原创 2022-06-08 11:47:06 · 1070 阅读 · 0 评论 -
最小生成树:Prim算法 /Kruskal算法(待深入复习理解)
目录1.各种概念和性质 2.prim算法 3.Kruskal算法 4.两种算法比较 无向图的生成树最小生成树构造最小生成树(利用MST性质) 算法思想 算法实现 算法实现原创 2022-06-08 10:28:49 · 191 阅读 · 9 评论 -
图的遍历(书本内容)
目录1.DFS邻接矩阵表示图的优先搜索遍历2.BFS 邻接表表示图的优先搜索遍历(通过队列实现非递归算法)3.DFS和BFS算法效率比较 实现深度优先遍历思路那个顶点访问过了就将辅助数组的对应值置为1 DFS算法效率分析*非连通图的遍历 *非连通图的广度遍历 实现广度优先遍历思路BFS算法效率分析...原创 2022-06-06 21:37:06 · 123 阅读 · 0 评论 -
邻接表/图/DFS/BFS
目录存储形式 采用邻接表法创建无向网邻接表的特点 邻接矩阵与邻接表表示法的关系完整代码 顶点的结构 弧(边)的结点结构图的结构定义邻接表操作举例说明邻接表的特点原创 2022-06-06 20:40:21 · 848 阅读 · 0 评论 -
邻接矩阵/图/DFS/BFS
目录1.邻接矩阵的表示2.邻接矩阵的存储3.采用邻接矩阵表示法创建无向网 4.基于邻接矩阵的图上各类操作 5.DFS6.BFS7.测试程序(待完成) 权与网连通分量(强连通分量) 无向图 有向图 网(有权图)3.采用邻接矩阵表示法创建无向网创建无向图和有向图的区别 优缺点 声明广度优先搜索需要的队列(图的遍历)基于邻接矩阵的图上操作5.DFS深度优先搜索属于图算法的一种,是一个针对图和树的遍历算法,英文缩写为DFS即Depth First Search。深度优先搜原创 2022-06-06 11:05:47 · 2121 阅读 · 0 评论 -
哈夫曼树与哈夫曼编码
哈夫曼树的重要定理对于具有n个叶子节点的哈夫曼树,一共需要2*n-1个节点。。因为对于二叉树来说,有3种类型节点,即度数(节点拥有的子树的个数被称为节点的度)为2的节点,和度数为1的节点和度数为0的节点。而哈夫曼树的非叶子节点都是由两个节点合并产生,所以不会出现度数为1的节点。而生成的非叶子节点的个数为叶子节点个数-1,因此n个叶子节点的哈夫曼树,一共需要2*n-1个节点。构建哈夫曼树1.初始化:首先申请2n个单元,然后循环2n-1次,从1号单元开始,依次将1至2n-1所有单元中的双亲,左右孩子的下原创 2022-06-04 20:37:17 · 2044 阅读 · 0 评论 -
线索二叉树
若结点有左子树,则其 lchild 域指示其左孩子,否则令其 lchild 域指示其前驱;若结点有右子树,则其 rchild 域指示其右r孩子,否则令其 rchild 域指示其后继;为了避免混淆,尚需改变结点的结构,增加两个标志域: 标志域:0表示指示左右孩子,LTagh和RTag等于1分别表示指示前驱和后继以这种结点结构构成的二叉链表作为二叉树的存储结构,叫做线索链表,其中指向结点前驱和后继的指针,叫做线索。加上线索的二叉树称之为线索二叉树,对二叉树以某种次序遍历使其变为线索二叉树的过程叫做线索化。...原创 2022-06-04 17:49:14 · 150 阅读 · 0 评论 -
二叉树的遍历
目录前序中序后序层序栈的操作#define SElemType BiTreetypedef struct SNode{ SElemType data; struct SNode* next;}SNode,*LinkStack;Status InitStack(LinkStack& S){ S = (LinkStack)malloc(sizeof(SNode)); if (!S) { return 0; } S->next = NULL;原创 2022-05-17 21:22:02 · 273 阅读 · 0 评论 -
二叉树基本实现
#include <iostream>using namespace std;#define TElemType char;#define Status int;typedef struct BiTNode{ TElemType data; struct BiTNode* lchild, * rchild;}BiTNode,*BiTree;Status InitBiTree(BiTree &T);Status DestroyBiTree(BiTree&.原创 2022-05-17 20:13:31 · 351 阅读 · 0 评论 -
循环队列的实现
目录1.循环队列的存储结构2.循环队列的初始化3.求队列长度4.循环队列入队5.循环队列出队6.取队头元素7.销毁和清除8.遍历循环队列9.测试用例10.判空1.循环队列的存储结构#include <iostream>using namespace std;#define QElemType int #define Status int #define MAXQSIZE 10typedef struct{ QElemType原创 2022-05-14 21:33:15 · 225 阅读 · 0 评论 -
链队列的实现
目录1.队列的链式存储结构2.链队的初始化3.链队的入队4.出队5.取队头元素6.销毁队列与清空队列7.队列的判空8.求队列长度9.遍历队列1.队列的链式存储结构#include <iostream>using namespace std;#define QElemType int#define Status inttypedef struct QNode{ QElemType data; struct QNode* next;原创 2022-05-14 19:08:20 · 699 阅读 · 0 评论 -
顺序栈与链式栈
目录1.顺序栈2.算法3.1数制的转换3.算法3.2括号匹配4.算法3.3链式栈解决表达式求值5.算法3.4舞伴问题6.算法3.5汉诺塔问题1.顺序栈#include <iostream>#include<stdio.h>using namespace std;#define SElemType int#define Status int#define STACK_INIT_SIZE 100#define STACKINCREME原创 2022-05-12 16:16:32 · 420 阅读 · 0 评论