![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 50
大百求知路
这个作者很懒,什么都没留下…
展开
-
数据结构之树的存储结构
大家可能都知道,存储结构有顺序存储结构和链式存储结构。很明显这两个结构不管哪一个,都不能很好的表达数这种数据结构,所以我们特此在这说一下数的存储结构 用这个树作为例子: ** 树的存储结构分为以下几类 一:双亲表示法 言外之意就是以双亲作为索引的关键词的一种存储方式,我们假设以一组连续空间存储树的结点,同时在每个结点中,附加一个指示其双亲结点在数组中位置的元素 代码如下: 这个图想知道这个结点的孩子,要这么个结构,这个图给出答案 下面这个图是表示他兄弟之间的表示方法 二:孩子表示法 根据树的度,声明原创 2022-04-28 22:00:53 · 1701 阅读 · 2 评论 -
KMP算法
一:首先大家初次看见kmp算法演示图会有点懵,觉得在讲什么啊,根本听不懂的好吧,但是,当你静下心来好好想想,就觉得通了 1.1:KMP算法的next数组和K数组(其实他们两个数组意义是一样的),它们出现的条件是匹配字符串的前缀和后缀是否有相同的字母,如没有,那当匹配串和被匹配串出现不匹配的时候,就把匹配串往后移一位就行,如图所示: 1.2:如果匹配相同,看前后缀有几个相同的字母,移的个数是相同字母个数加一,如图所示: 还有人就会问了,怎么判读它的前后缀个数啊,在这里我给大家讲一下:就是当匹配字符串与被匹配字原创 2022-04-27 22:33:30 · 57 阅读 · 0 评论 -
队列数据结构详解
1.队列既可以用链表实现,也可以用顺序表实现。跟栈相反的是,栈一般用顺序表来实现,而队列我们常用链表来实现,称为链队列,它是后入前出(头结点进,尾结点出),头结点不存元素 实现代码: typedef struct QNode//定义队列的链表结点 { ElemType data; struct QNode *next; }QNode,*QueuePrt; typedef struct { QueuePrt front,rear;//队头,尾指针 }LinkQueue; 代码思路:队列数据结构的定义和原创 2022-03-30 20:33:09 · 2336 阅读 · 1 评论 -
栈的顺序存储结构以及栈的创建和入栈出栈
这里定义一个顺序存储的栈 typedef struct { ElemType *base; ElemType *top; int stackSize; }sqStack; 它包含三个元素:base,top,stackSize。其中base是指向栈底的指针变量,top是指向栈顶的指针变量,stackSize指示栈的当前可使用的最大容量。 创建一个栈 #define STACK_INIT_SIZE 100 initStack(sqStack *s) { s->base = (ElemType *)mall原创 2022-03-25 22:12:27 · 600 阅读 · 0 评论