数据结构
文章平均质量分 78
妤11
这个作者很懒,什么都没留下…
展开
-
3~4矩阵的压缩存储(下)【详解】
数组是由n个相同类型的数据元索构成的有限序列;每个数据元素称为一个数组元索;每个元素在n个线性关系中的序号称为该元素的下标,下标的取值范围称为数组的维界;下标从0开始计数。指为多个值相同的元素只分配一个存储空间对零元素不分配存储空间。目的是为了节省存储空间。原创 2023-03-17 20:42:28 · 407 阅读 · 0 评论 -
3~4矩阵的压缩存储【上】【详解】
①确定中各个运算符的运算顺序;②选择下一个运算符,按照【左操作数 右操作数 运算符】的方式组合成一个新的操作数;③如果还有运算符没被处理,就继续②。原创 2023-03-17 20:07:26 · 237 阅读 · 0 评论 -
队列(数据结构)【详解】
队列是一种操作受限的线性表,只允许在表的一端进行插入,而在表的另一端进行删除,向队列中插入元素称为入队或进队;删除元素称为出队或离队。队列的特点先进先出队头(Front):允许删除的一端,又称队首;队尾(Rear):允许插入的一端;空队列:不含任何元素的空表双端队列是指允许两端都可以进行入队和出队操作的队列;逻辑结构仍是线性结构;将队列的两端分别称为前端和后端,两端都可以入队和出队。原创 2023-03-14 19:26:43 · 937 阅读 · 0 评论 -
队列、循环队列操作及其链队列操作
队列是仅在表尾进行插入操作,在表头进行删除操作的线性表。表尾即an端,称为队尾;表头即a1端,称为队头。它是一种先进先出(FIFO)的线性表。插入元素称为入队;删除元素称为出队。队列的存储结构为链队或顺序队(常用循环顺序队)定义只能在表的一端进行插入运算,在表的另一端进行删除运算的线性表(头删尾插)逻辑结构与线性表相同,仍为一对一关系。存储结构顺序队或链队,以循环顺序队列更常见。运算规则只能在队首和队尾运算,且访问结点时依照先进先出(FIFO)的原则。实现方式关键是掌握入队和出队操作,具体实现依顺序队或链队原创 2023-01-18 14:57:39 · 723 阅读 · 0 评论 -
栈的相关知识以及递归
ADT Stack{数据对象:数据关系:约定an端为栈顶,a1端为栈底。基本操作;初始化、进栈、出栈、取栈顶元素等}ADT Stack。原创 2023-01-16 09:43:31 · 348 阅读 · 0 评论 -
栈和队列以及其相关的案例
栈和队列的定义栈和队列是两种常用的、重要的数据结构;栈和队列是限定插入和删除只能在表的“端点”进行的线性表。线性表 栈1原创 2023-01-15 01:00:00 · 287 阅读 · 0 评论 -
线性表的合并以及有序表的合并
已知线性表La和Lb中的数据元素按值非递减有序排列,现要求将La和Lb归并为一个新的线性表Lc,且Lc中的数据元素仍按值非递减有序排列。依次从La或Lb中“摘取”元素值较小的结点插入到Lc表的最后,直至其中一个表变空为止;假设利用两个线性表La和Lb分别表示两个集合A和B,现要求一个新的集合A=A∪B。继续将La或Lb其中一个表的剩余结点插入在Lc表的最后。原创 2023-01-14 02:00:00 · 325 阅读 · 0 评论 -
总结:各种链表间的比较、顺序表和链表的比较
一般的,存储密度越大,存储空间的利用率就越高。显然,顺序表的存储密度为1(100%),而链表的存储密度小于1.对任一结点的操作都要从头指针依指针链查找到该结点,这增加了算法的复杂度。当每个结点的数据域所占字节不多时,指针域所占存储空间比重显得很大。②很少进行插入或删除操作,经常按元素位置序号访问数据元素。存储密度=结点数据本身占用的空间/结点占用的空间总量。数据元素的逻辑次序靠结点的指针来指示。通过p->next可以找到其前驱。通过p->next可以找到其前驱。从L->next依次向后遍历。原创 2023-01-13 10:00:00 · 566 阅读 · 0 评论 -
循环链表和双向链表
双向链表:在单链表的每个结点里再增加一个指向其直接前驱的指针域prior,这样链表中就形成了有两个方向不同的链,故称为双向链表。原创 2023-01-12 17:34:30 · 239 阅读 · 0 评论 -
链表的特点,单链表的定义、存储结构,单链表的基本操作(判断链表是否为空、销毁链表、清空链表、求链表表长、查找、插入、删除,建立单链表)
单链表是由表头唯一确定,因此单链表可以用头指针的名字来命名,若头指针名是L,则把链表称为表L。原创 2023-01-09 15:16:56 · 2046 阅读 · 0 评论 -
线性表的顺序表示和实现
/函数结果状态代码TURE 1FALSE 0OK 1ERROR 0//Status是函数的类型,其值是函数结果状态代码顺序表基本操作的实现——补充:几个简单操作线性表L的初始化(参数用引用)Status InitList_Sq(SqList &L){ //构造一个空的顺序表L//为顺序表分配空间if(!//存储分配失败//空表长度为0return OK;销毁线性表L//释放存储空间}清空线性表L//将线性表的长度置为0}求线性表L的长度}原创 2023-01-04 15:06:30 · 109 阅读 · 0 评论 -
线性表的定义和特点
线性表是具有相同特性的数据元素的一个有限序列。同一线性表中的元素必定具有相同特性,数据元素间的关系是线性关系。抽象数据类型线性表的定义如下:ADT List{数据对象:D={a(i)|a(i)属于Elemset,(i=1,2,...,n,n>=0)}数据关系:R={|a(i-1),a(i)属于D,(i=2,3,...,n)}基本操作:......等等}ADT List。原创 2022-12-31 19:21:43 · 782 阅读 · 0 评论 -
算法和算法分析
算法是对特定问题求解方法和步骤的一种描述,它是指令的有限序列。其中每个指令表示一个或多个操作。简而言之,算法就是解决问题的方法和步骤。二、算法的描述自然语言:英语、中文;流程图:传统流程图、NS流程图;伪代码(类语言):类C语言;程序代码:C语言程序;JAVA语言程序。三、算法与程序算法:输入转换为输出,一个问题可有多种算法。程序是由某种程序设计语言对算法的具体实现。算法的特性:有穷性、确定性、可行性、输入(0个或多个)、输出(1个或多个)原创 2022-12-31 17:59:15 · 70 阅读 · 0 评论 -
数据结构基本概念和术语
数据对象是性质相同的数据元素的集合,是数据的一个子集。数据对象、数据关系的定义用伪代码描述。可进行算术运算的,包括加减乘除、平方、开方等算术运算。不考虑计算机内的具体存储结构与运算的具体实现算法。数据对象:数据关系:基本操作:P是对D的基本操作集。初始条件:操作结果:数据项:构成数据元素的不可分割的最小单位。数据类型=值的集合+值的集合上的一组操作。数据元素与数据的关系:是集合的个体;数据对象与数据的关系:集合的子集。原创 2022-12-30 18:41:46 · 160 阅读 · 0 评论 -
数据结构绪论
3.数据项(Data Item)是组成数据元素的、有独立含义的、不可分割的最小单位。数据(Data)是客观事物的符号表示,是所有能输入到计算机中并被计算机程序处理的符号的总称(集合)。(给出问题的数学模型)而数据结构就是数据的组织、管理和存储格式,其使用目的是为了高效的访问和修改数据。数据结构是一门研究非数值计算的程序设计问题中,计算机的操作对象以及它们之间的关系和操作的学科。程序设计的实质是对确定的问题选择一种好的数据结构,并设计一种好的算法。数据类型:一个值的集合以及定义在这个值集上的一组操作的总称。原创 2022-10-25 19:55:35 · 77 阅读 · 0 评论