- 博客(12)
- 收藏
- 关注
原创 二叉树定义、性质及存储结构详解
1.首先需要明白二叉树只是一种存储结构,只是将元素使用二叉树这种方式进行存储而已,其本质不会改变元素本身,只是使用二叉树这种存储结构来优化其查找、CRUD等方式。2.二叉树是一种特殊树形结构,其特点是每个结点只有两颗子树(或两个子节点)即二叉树中不存在度大于2的结点。如图所示:3.二叉树一种有序树,如果将其左右子树颠倒则变成另一颗不同的二叉树树。即使一颗二叉树中只有一颗子树也要区分它是左子树还是右子树。
2023-06-27 23:38:00
323
原创 KMP算法及优化(串模式匹配 含完整代码)
串的模式匹配其实就是找到子串在主串中的位置。例如:串A='ABCD' 字符B在串A中的位置就是2,串BC在A中的位置就是2。位置不是位序,位置是从1开始。串的结构类似于线性表的顺序存储结构,串是用一组地址连续的存储单元存储串值的字符序列。一般用一个定长的数组来表示串的每个字符分量(为了表示串是从1开始而不是0一般将数组位序为0的位置舍弃):如串中保存串 ABCD。串长有两种表示方法:方法一是使用一个额外的变量len来存放串的长度 如下图方法二是在串值后面加一个不计入串长的结束符“\0”。
2023-04-27 23:11:38
2368
原创 链式队列详解(含完整代码)
入队列时:直接通过rear指针插入新结点到队尾即可(若原队列为空队则front和rear都指向这个新节点)。如图所示:判队空:front=NULL且rear=NULL时即可判定此链式队列为空通常将链式队列设计成一个带头结点的单链表方便操作。就像一个单链表拥有尾指针一样。
2023-04-25 20:45:43
2273
原创 队列、循环队列、双端队列详解(含完整代码)
队列是一种操作受限的线性表。只允许在表的一端进行插入,在表的另一端进行删除。和日常生活中的队列一样 先入队的元素优先出队,即先进先出。
2023-04-24 23:09:16
2989
2
原创 栈初始化、CRUD (超详细、完整代码)
栈是只允许在一端进行插入或者删除操作的线性表。栈是一种线性表(线性表又包括顺序表和链表),栈也包括链栈和顺序栈。//链栈的实质就是 单链表使用头插法 进入只能从头进入 出来也只能从头出来int data;}*LiStack;
2023-04-18 23:26:37
3364
2
原创 双链表初始化、CRUD (超详细、完整代码)
int data;//这里是指针 定义一个指针类型区域 prior就指向相同数据类型的节点双链表在单链表的基础上多加了一个prior指针,指向其前驱。因此双链表的按值查找和按位查找和单链表是相同的,但是插入和删除与单链表不同 因为插入删除还要兼顾到prior指针(要保证插入和删除后prior指针依然指向前驱)
2023-04-17 22:53:31
1992
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人