
数据结构
imxlw00
这个作者很懒,什么都没留下…
展开
-
线性表的定义和基本操作
线性表的定义线性表是具有相同数据类型的n(n>=0)个数据元素的有限序列。其中n为表长,当n=0时该线性表是一个空表。若用L命名线性表,则其一般表示如下:其中a1是唯一的“”第一个“”数据元素,又称为表头元素:an是唯一的“”最后一个“”数据元素,又称为表尾元素。除第一个元素外,每一个元素有且仅有一个直接前驱。除最后一个元素外,每一个元素有且仅有一个直接后继。线性表的基本操作1.I...原创 2019-06-10 15:06:33 · 5350 阅读 · 0 评论 -
线性表的顺序表示
线性表的顺序存储又称为顺序表,它用一组地址连续的存储单元,依次存储线性表中的数据元素,从而使得逻辑上相邻的两个元素在物理位置上也相邻。线性表中的元素位序从1开始,而数组中元素的下标从0开始可以采用一位数组来实现顺序存储结构。一位数组可以是静态分配,也可以是动态分配。静态分配数组大小事先固定,一旦空间占满,再加数据则产生溢出。线性表的元素类型为ElemType则顺序存储类型描述为:静态分...原创 2019-06-10 15:51:45 · 1189 阅读 · 0 评论 -
线性表的链式存储
顺序结构需要一块连续的存储空间,那如果我们只有零散的空间呢?线性表的链式存储是指通过一组任意的存储单元来存储线性表中的数据元素。为了建立起数据元素之间的线性关系,对每个链表结点,除了存放元素自身的信息之外,还需要存放一个指向其后继的指针。typedef struct LNode{ //定义单链表结点类型ElemType data; //数据域struct LNode *next; /...原创 2019-06-12 09:58:21 · 260 阅读 · 0 评论 -
线性表 双链表
单链表:单个指针,单向火车双链表:双指针,电梯typedef struct DNode{ //定义单链表结点类型 ElemType data; //数据域 struct DNode *prior,*next; //前驱和后继指针}DNode, *DLinkList;插入1.插入:(方法不唯一)① s->next=p->next;② p->next->...原创 2019-06-12 11:55:47 · 204 阅读 · 0 评论 -
线性表 循环链表
循环单链表循环单链表:循环单链表和单链表的区别在于,表中最后一个结点的指针不是NULL,而改为指向头结点,从而整个链表形成一个环。循环单链表的判空条件不是头结点的后继指针是否为空,而是它是否等于头指针。循环双链表循环双链表:类比循环单链表,循环双链表链表区别于双链表就是首尾结点构成环。当循环双链表为空表时,其头结点的prior域和next域都等于Head。...原创 2019-06-12 14:02:17 · 551 阅读 · 0 评论 -
稀疏数组_JAVA
尚硅谷 Java 数据结构和算法 尚硅谷-韩顺平需求先看一个实际的需求:编写的五子棋程序中,有存盘退出和续上盘的功能。因为该二维数组的很多值是默认值0, 因此记录了很多没有意义的数据。什么是稀疏矩阵在矩阵中,若数值为0的元素数目远远多于非0元素的数目,并且非0元素分布没有规律时,则称该矩阵为稀疏矩阵。稀疏数组的处理方法是:记录数组一共有几行几列,有多少个不同的值把具有不同值的元素...原创 2019-09-06 20:36:54 · 363 阅读 · 1 评论 -
队列_JAVA
尚硅谷 Java 数据结构和算法 尚硅谷-韩顺平队列队列是一种特殊的线性表,它只允许在表的前端进行删除操作,而在表的后端进行插入操作。遵循先入先出的原则。即:先存入队列的数据,要先取出。后存入的要后取出数组模拟队列思路队列本身是有序列表,若使用数组的结构来存储队列的数据,其中 maxSize 是该队 列的最大容量。因为队列的输出、输入是分别从前后端来处理,因此需要两个变量 fro...原创 2019-09-06 20:50:54 · 146 阅读 · 0 评论 -
环形队列_JAVA
普通顺序队列存在的问题在普通顺序队列中,入队的操作就是先将尾指针rear右移一个单位,然后将元素值赋值给rear单位。出队时,则是头指针front后移一个单位。像这样进行了一定数量的入队和出队操作后,可能会出现这样的情况:尾指针rear已指到数组的最后有一个元素,即rear==MaxLen-1,此时若再数组的前面部分可能还有很多闲置空间,即这种溢出并非是真的没有可用的存储空间,故称这种溢出现象...原创 2019-09-06 20:59:57 · 206 阅读 · 0 评论