
数据结构
文章平均质量分 53
__sai_
写作是为了对抗时间的流逝和遗忘。
展开
-
【数据结构】【王道】5、图
1 图的遍历 1.1 广度优先搜索 算法思想:以v为起点,由近至远一次访问和v有路劲相通且路径长度为1,2,3…的点 算法: bool visited[MAX_VERTEX_NUM]; void BFSTraverse(Graph G){ for(int i=0;i<G.vexnum;i++) visited[i]=false; for(int i=0;i<G.vexnum;i++){ if(!visited[i]) BFS(G,i); } } void BFS(Graph原创 2021-09-16 20:49:04 · 83 阅读 · 0 评论 -
【数据结构】【王道】4、树与二叉树
1 二叉树 1.1 二叉树的存储结构 1.顺序存储结构 用一组地址连续的存储单元依次自上而下、自左至右存储完全二叉树上的节点元素。即:将完全二叉树上编号为i的节点元素存储在一维数组下标为i-1的分量中 完全二叉树和满二叉树适合顺序存储,其他二叉树比较浪费空间 2.链式存储结构 一般二叉树采取链式存储,二叉链表有三个域:数据域、左指针域、右指针域 2 二叉树的遍历 1.先序遍历 void PreOrder(BiTree T){ if(T!=NULL){ visit(T); PreOrder(T-&g原创 2021-09-13 21:30:03 · 151 阅读 · 0 评论 -
【数据结构】【王道】3、串
1 串的定义和实现 1.1 串的定义 串是由0个或多个字符组成的有限序列 串的逻辑结构和线性表极为相似,区别仅在于串的数据对象限定为字符集。 基本操作上串和线性表差别很大,线性表的基本操作以单个元素为主,串的基本操作以子串为对象 1.2 串的存储结构 1.定长顺序存储表示 即定长数组 2.堆分配存储表示 地址连续,存储空间是在程序执行过程中动态分配得到的 2 串的模式匹配 即 子串的定位 KMP算法 前缀:除最后一个字符以外,字符串的所有头部子串 后缀:除第一个字符以外,字符串的所有尾部子串 部分匹配值:字原创 2021-09-13 20:43:39 · 119 阅读 · 0 评论 -
【数据结构】【王道】2、栈和队列
1 栈 1.1 栈的基本概念 先进后出 1.2 栈的顺序存储结构 栈是一种操作受限的线性表,类似于线性表,它也有对应的两种存储方式 顺序存储的栈称为顺序栈,利用一组地址连续的存储单元存放自栈底到栈顶的数据元素 初始化:S.top=-1; 判栈空:S.top==-1; 判栈满:S.top==MaxSize-1; 栈长:S.top+1 进栈:S.data[++S.top]=x; 出栈:x=S.data[S.top–]; 读栈顶元素:x=S.data[S.top]; 1.3 栈的链式存储结构 采用链式存储的栈称为原创 2021-09-13 19:07:46 · 145 阅读 · 0 评论 -
【数据结构】【王道】1、线性表
1 线性表的定义 2 线性表的顺序表示 2.1 顺序表的定义 线性表是逻辑数据结构,其顺序表示——顺序表,是该逻辑的存储方式 存储方式为顺序存储 2.2 顺序表上基本操作的实现 1.插入 在顺序表的第i个位置插入新元素。若i不合法,返回false,否则,第i~length个元素后移一位,腾出空位插入e,长度+1,返回true bool ListInsert(SqList &L,int i,ElemType e){ if(i<1 || i>L.length) return false原创 2021-09-13 16:12:36 · 131 阅读 · 0 评论