![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 75
CC_YXK
这个作者很懒,什么都没留下…
展开
-
链栈及其基本操作
一、链栈的基本定义 采用链式存储结构实现的栈称为链栈,链栈通常采用单链表来实现,因此其结构与单链表的结构相同由于栈的插入和删除操作仅限制在栈顶位置进行,所以采用单链表的表头指针作为栈顶指针。 同时,为了操作方便,使用带头节点的单链表来实现链表。数据入栈或出栈时,使表头节点的指针指向新的表首节点即可,再入栈时,需要为新的数据元素动态的开辟存储单元,并修改头结点的指针域;而在出栈时,除...原创 2018-07-25 22:27:59 · 26796 阅读 · 9 评论 -
循环链表的相关操作
一、定义 循环链表是另一种形式的链式存储结构。它的特点是表中最后一个节点的指针域指向头结点,整个链表形成一个环二、循环链表的数据结构 循环链表的数据结构和单链表相同,分为数据域和指针域,指针域指向当前节点的下一节点,代码如下:typedef struct Node{ int data; struct Node *next;}Node,*LinkList;三...原创 2018-07-22 18:59:40 · 518 阅读 · 0 评论 -
单链表的建立和相关操作
一、单链表的定义 单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素。链表中的数据是以结点来表示的,每个结点的构成:元素(数据元素的映象) + 指针(指示后继元素存储位置),元素就是存储数据的存储单元,指针就是连接每个结点的地址数据。 假设单链表各节点的数据为int型,则单链表定义如下://自定义数据类型typedef int ...原创 2018-07-18 22:11:02 · 340 阅读 · 0 评论 -
子串问题(BF算法、KMP算法)
一、问题描述假设字符串A: "abcababcabc" 字符串B:"abcabc"因为字符串A中有一部分和B相同,则称字符串B为字符串A的子串二、BF算法用i 和 j 分别表示字符串AB的下标,初始值都为0。下标 0 1 2 3 4 5 6 7 8 9 10 字符串A a b ...原创 2018-10-13 11:24:51 · 1431 阅读 · 0 评论 -
AVL树
一、什么是AVL树 AVL树是自平衡的二叉搜索树(二叉查找树、二叉排序树),AVL树再二叉搜索树的基础上通过旋转来得到平衡,平衡即任意一个结点的两个子树的高度差最高为1。二、旋转首先我们来看一下如何通过旋转来使得树平衡。1、左单旋转解决如下情况:定义新的根结点指向当前根的右孩子 新根的左孩子等于旧根,旧根的右孩子等于新根的左孩子 将新根插入到旧根原来位置注...原创 2019-03-06 17:33:51 · 113 阅读 · 0 评论 -
B-树
背景 对于二叉平衡树、红黑树,其查找的时间复杂度都为O(logn)。但是考虑到一个实际情况:在对大量数据进行存储查找的时候,采用这种数据结构往往会使得树的深度十分庞大,此时定位到目标节点也往往会遍历到一定深度才可以达到,那么在实际使用中效率就十分低下了,这种效率低下的产生就不是由于数据结构而引起的了,而是跟操作系统的设计有关。操作系统大多使用页来管理内存,当存储大量数据时,其肯定不...原创 2019-03-17 18:01:40 · 388 阅读 · 0 评论