数据结构
yy_0733
这个作者很懒,什么都没留下…
展开
-
数据结构:循环链表
1、循环链表的定义:循环链表是另一种形式的表示线性表的链表。2、循环链表的节点结构:循环链表的结点包括两个部分:数据域和指针域。(1)数据域(data),用于存储该结点的数据元素,数据元素类型由应用问题决定。 (2)指针域(link),用于存放一个指针,该指针指向下一个结点的开始存储地址。循环链表的结点结构示意图:3、循环链表中各节点的链接方式:(1)循环链表与单链表一样,...原创 2019-08-02 17:37:37 · 712 阅读 · 0 评论 -
数据结构:单链表
1、链式存储结构:在链式存储的过程中,每个元素Node不仅包含元素本身的信息,还包含元素之间的逻辑信息。前驱结点包含后继结点的地址信息(指针域),可以很方便的找到后继结点的位置。2、链表:通过一组任意的存储单元来存储线性表中的数据元素,由一个个结点构成。3、单链表:每个结点除包含数据域外,只设置一个指针域,来指向后继结点,这样构成的链表就是单链表。 单链表是一种链式存取的数据...原创 2019-07-31 22:17:54 · 348 阅读 · 0 评论 -
数据结构:静态链表
1、对于没有指针的编程语言,可以用数组替代指针,来描述链表。让数组的每个元素由data和cur两部分组成,其中cur相当于链表的next指针,这种用数组描述的链表叫做静态链表,这种描述方法叫做游标实现法。我们对数组的第一个和最后一个元素做特殊处理,不存数据。让数组的第一个元素cur存放第一个备用元素(未被占用的元素)下标,而数组的最后一个元素cur存放第一个有值的元素下标,相当于头结点作用。...原创 2019-08-04 23:28:08 · 224 阅读 · 0 评论 -
数据结构:单链表实现队列
1、队列示意图:2、单链表实现队列的存储结构:3、C语言实现:(1)lqueue.h:#pragma once//利用带头节点的单链表实现队列,队头为第一个数据节点typedef struct Node{ int data; struct Node *next;}Node;//数据节点typedef struct HNode{ str...原创 2019-08-04 10:36:34 · 228 阅读 · 0 评论 -
数据结构:顺序表实现环形队列
1、队列的定义:队列是一种特殊的线性表,线性表两端都可以进行插入删除,而队列只能在队头删除,队尾插入。插入元素称为入队,删除元素称为出队。2、队列的特点:(1)只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表 (2)进行插入操作的一端称为队尾(入队列) (3)进行删除操作的一端称为队头(出队列) (4)队列具有先进先出(FIFO)的特性3、队列的分类:顺序...原创 2019-08-04 10:06:48 · 401 阅读 · 0 评论 -
数据结构:链栈
1、链栈:栈的链式存储结构2、基本概念:栈顶:允许插入和删除的一端称为栈顶(top)栈底:栈顶的另外一端称为栈底(bottom)空栈:不含任何元素的栈称为空栈3、链栈的存储结构:4、链栈的实现:(1)入栈:(2)出栈:5、链栈的C语言实现:(1)lstack.h://带头节点链栈,栈顶在第一个数据节点,入栈和出栈都是O(1)#include ...原创 2019-08-04 09:46:14 · 256 阅读 · 0 评论 -
数据结构:不定长顺序栈
1、栈(stack):又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。特点:栈是允许在同一端进行插入和删除操作的特殊线性表。允许进行插入...原创 2019-08-04 09:34:15 · 103 阅读 · 0 评论 -
数据结构:单链表的逆置
单链表的逆置分为两种方法:头插法和就地逆置法。(1)头插法:算法思路:依次取原链表中的每一个节点,将其作为第一个节点插入到新链表中,指针用来指向当前节点,p为空时结束。(2)就地逆置法:ListNode* ReverseList(ListNode* pHead){ if (pHead == NULL || pHead->pNext == NULL) { ...原创 2019-08-03 17:57:09 · 685 阅读 · 0 评论 -
数据结构:一元多项式及其基本运算
1、实现方式:可采用线性表的顺序存储结构,但是当多项式的每个项的指数差别很大时,会浪费很多存储空间。所以采用链式存储方式表示,每一项可以表示成一个结点,结点的结构由存放系数的coef域,存放指数的expn域和指向下一个结点的next指针域组成。2、链表结构:3、一元多项式的加法运算:设La和Lb分别表示两个多项式。Lc表示和多项式。p,q,r分别表示指向单链表的当前项比较指数...原创 2019-08-03 17:25:16 · 12577 阅读 · 1 评论 -
数据结构:不定长顺序表
1、定长的顺序表即为不可扩容的线性表,而不定长的顺序表一旦因插入元素而空间不足时,可进行再分配。2、不定长顺序表的结构:是对定长顺序表的一种改进,在初始时开辟内存被利用完后,还要继续插入数据时,这时候据需要扩容。与定长的顺序表的存储结构相比较,不定长的顺序表只增加一个元素listsize(用于记录当前顺序表的总长度),具体结构如下图所示:dseqlist.h://不定长顺序表#...原创 2019-07-30 22:33:07 · 176 阅读 · 0 评论 -
数据结构:定长顺序表
1、 顺序表是在计算机内存中以数组的形式保存的线性表,是指用一组地址连续的存储单元依次存储数据元素的线性结构。线性表采用顺序存储的方式存储就称之为顺序表。顺序表是将表中的结点依次存放在计算机内存中一组地址连续的存储单元中。其物理地址相邻,逻辑地址也相邻2、顺序表的特点:(1)简单;(2)支持随机访问(下标);(3)查找快;(4)缺点:插入和删除慢(但尾删和尾插为O(1))3、顺序表的存储结...原创 2019-07-30 22:00:32 · 244 阅读 · 0 评论 -
数据结构:双向链表(不循环)
1、双向链表的定义:双向链表也是链表的一种,它每个数据结点中都有两个结点,分别指向其直接前驱和直接后继。所以我们从双向链表的任意一个结点开始都可以很方便的访问其前驱元素和后继元素。2、双向链表的节点结构:3、双向链表的存储结构:双向链表也是采用的链式存储结构,它与单链表的区别就是每个数据结点中多了一个指向前驱元素的指针域 ,它的存储结构如下图:4、当双向链表只有一个节点的时...原创 2019-08-02 17:56:18 · 550 阅读 · 0 评论 -
数据结构:不带头结点的单链表
不带头结点的单链表:1.不带头结点的单链表操作中,除了初始化,头插,尾插,删除,操作与带头结点的单链表有差别外,其它的操作基本上一样。2.链表指针直接指向了首元节点,因此在首元节点前插入数据元素或者删除首元节点元素都会改变头指针的值。所以这里要引入二级指针。3、存储结构:4、实现:(1)list.h:#pragma once//链表指针直接指向了首元节点,因此在首...原创 2019-08-06 16:25:19 · 1574 阅读 · 0 评论