合集-数据结构
栈和队列
摘要:第三章 栈和队列 3.1 栈和队列的定义和特点 3.1.1 栈的定义和特点 表头 - 栈顶 表尾 - 栈底 只能从栈底进行插入和删除 后进先出LIFO 3.1.2 队列的定义和特点 队尾插入 队头删除 先进先出FIFO 3.2 案例 3.3 栈的表示和操作的实现 3.3.1 栈的类型定义 栈的两种表
阅读全文
线性表 & 广义表
摘要:线性表 2.1 线性表的定义和特点 数据特性相同 有限序列 2.2 案例 一元多项式 稀疏多项式:在所有系数都不为零的情况下 需要多一倍的存储空间 但在一般情况下是省空间的 2.3 线性表的类型定义 2.4 线性表的顺序表示和实现 2.4.1 线性表的顺序存储表示 需要地址连续的存储单元 逻辑上相邻
阅读全文
串模式匹配 - BF & KMP
摘要:BF 一种暴力的串匹配算法。 指定主串中查找的起始位置。用两个指针分别遍历主串和子串,如果到达串尾就结束。 当遇到子串与主串不匹配时,通过把主串指针回溯到当前起始字符的下一个字符来重新开始匹配。 实现代码如下。 #include<iostream> using namespace std; #def
阅读全文
排序 - 插入 & 交换 & 选择 & 堆 & 基数
摘要:插入排序 直接插入排序 算法描述 将一条记录插入到有序表中,得到新的有序表。 将需要调整位置的元素暂存在r[0]处,然后再进行插入。 算法实现 void InsertSort(SqList &L) { for(i = 2; i <= L.length; i++) if(L.r[i].key < L.
阅读全文
稀疏矩阵 - 十字链表 & 快速转置
摘要:十字链表 每个稀疏矩阵非零元素都是一个结点,数据域存储的是所在行、所在列和元素值,有两个指针域,分别存储的是指向与该元素同行的下一个非零元素和同列的下一个非零元素的指针。 所以一个m行n列的稀疏矩阵,(最多)总共有(m + n)个链表,即(在每行每列都有非零元素的情况下,当然这样可能并不算是一个“好
阅读全文
查找 - 线性表 & 散列表 & 树
摘要:线性表的查找 顺序查找 技巧:设置哨兵,放在下标为0的位置。 int Search_Seq(SSTable ST, KeyType key) { ST.R[0].key = key; for(int i = ST.length; ST.R[i].key != key; i--); return i;
阅读全文
图 - 存储结构 & 最短路径 & 最小生成树 & 拓扑排序 & 关键路径
摘要:图的四种存储结构 邻接矩阵 有一个存储顶点的顺序表和一个存储边/弧的二维数组。 存储结构 #define MaxInt 32767 #define MVNum 100 //最大顶点数 typedef struct { VerTexType vexs[MVNum]; //顶点顺序表 ArcType a
阅读全文
浙公网安备 33010602011771号