- 博客(4)
- 收藏
- 关注
原创 KMP算法
KMP算法 前缀:只包含首字母,不包含尾字母的所有子串 后缀:只包含尾字母,不包含首字母的所有子串 例: 文本串:aabaabaaf 模式串:aabaaf 模式串的所有前缀:a,aa,aab,aaba,aabaa 模式串的所有后缀:f,af,aaf,baaf,abaaf 求最长相等前后缀 a 0 aa 1 aab 0 aaba 1 aabaa 2 aabaaf 0 当后缀的后面与文本串不匹配时,就从前缀的后面开始匹配 最长相等前后缀的大小正好等于前缀后面的下标
2021-03-17 23:54:05 181 1
原创 栈
栈 栈是限定仅在表尾进行插入和删除操作的线性表。栈相当于一个箱子,满足先进后出的原则。 c语言定义栈 typedef struct node { int data; struct node *next; }node,*pNode; struct stack { pNode pTop;//指向栈顶 pNode pBottom;//指向栈底 }stack,*pStack; 栈的基本操作 (1)初始化,建立一个空栈 void init(stack *ps) { ps->pTop = (pN
2021-03-14 12:45:08 68
原创 单链表
单链表 单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素。链表中的数据是以结点来表示的,每个结点的构成:元素(数据元素的映象) + 指针(指示后继元素存储位置),元素就是存储数据的存储单元,指针就是连接每个结点的地址数据。 链表的分类 c语言定义单链表 typedef struct node { int data;//数据域 struct node *next;//指针域 }node,*pNode; 非循环单链表的基本操作 主函数部分 int main() {
2021-03-14 12:42:38 65
原创 顺序表
顺序表 顺序表的顺序存储结构,指的是用一段连续的存储单元 依次存储线性表的数据元素 线性表的顺序存储示意图: c语言定义顺序表的顺序存储结构 struct array { int *pBase;//存储的是数组第一个元素的地址 int len;//数组所能容纳的最大元素的个数 int cnt;//当前数组有效元素个数 }; 描述顺序存储结构需要三个元素: 存储空间的起始位置(即pBase) 线性表的最大存储容量(即len) 线性表的当前长度(即cnt) 顺序表的基本操作 (1)初
2021-03-14 12:37:03 75
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人