首页 > 其他分享 >每日记录(数据结构 第二章 线性表() )

每日记录(数据结构 第二章 线性表() )

时间:2023-06-05 23:33:58浏览次数:45  
标签:第二章 线性表 容量 一个 元素 内存 数组 数据结构

 

线性表的定义:

存在唯一一个“第一个”元素
存在唯一一个“最后一个”元素
除第一个元素外,每一个元素都有且只有一个前驱
除最后一个元素外,每个元素都有且只有一个后继
一、线性表顺序存储结构(顺序表)
0.线性表的基本概念
线性表强调元素在逻辑上紧密相邻,所以首先想到用数组存储。但是普通数组有着无法克服的容量限制,在不知道输入有多少的情况下,很难确定出一个合适的容量。对此,一个较好的解决方案就是使用动态数组。首先用malloc申请一块拥有指定初始容量的内存,这块内存用作存储线性表元素,当录入的内容不断增加,以至于超出了初始容量时,就用malloc扩展内存容量,这样就做到了既不浪费内存,又可以让线性表容量随输入的增加而自适应大小。如下

 

优点:

  • 存储密度大(结点本身所占存储量/结点结构所占存 储量)
  • 可以随机存取表中任一元素

缺点:

  • 在插入、删除某一元素时,需要移动大量元素
  • 浪费存储空间
  • 属于静态存储形式,数据元素的个数不能自由扩充

标签:第二章,线性表,容量,一个,元素,内存,数组,数据结构
From: https://www.cnblogs.com/xiao-hong111/p/17459295.html

相关文章

  • 数据结构(4天)
    带权并查集:维护一个数组,保存一个fa[x]与x之间的关系,路径压缩时直接要记得修改关系intfind(intx){if(fa[x]==x){returnfa[x];}introot=find(fa[x]);w[x]=f(w[x],w[fa[x]]);//关键fa[x]=root;returnfa[x];}对于区间修......
  • 数据结构小结
    个人认为数据结构有点偏向理论知识点,从这些理论知识点,我们可以知道各种数据结构的特点,然后在特定的场景下使用对应的数据结构来存储。基础的数据结构从逻辑上来说基础的数据结构只有线性结构、非线性结构,也就是数组、链表。其他复杂一点的如队列、栈、树、图、hashtable都可......
  • 数据结构第一天
    数据>数据元素>数据项 数据项是构成数据元素的不可分割的最小单位 数据是由数据项组成的,数据项是由数据元素组成的 数据元素-----组成数据的基本单位与数据的关系:是集合的个体 数据对象------性质相同的数据元素的集合与数据的关系:是集合的子集  数据元素......
  • C#数据结构-红黑树实现
    参考网址: https://zhuanlan.zhihu.com/p/353948322二叉查找树,他对于大多数情况下的查找和插入在效率上来说是没有问题的,但是他在最差的情况下效率比较低。红黑树保证在最坏的情况下插入和查找效率都能保证在对数的时间复杂度内完成。红黑树的性质:性质1.节点是红色或黑色性质2.根是......
  • 数据结构--Dijkstra算法最清楚的讲解
    迪杰斯特拉(Dijkstra)算法是典型最短路径算法,用于计算一个节点到其他节点的最短路径。它的主要特点是以起始点为中心向外层层扩展(广度优先搜索思想),直到扩展到终点为止###基本思想通过Dijkstra计算图G中的最短路径时,需要指定起点s(即从顶点s开始计算)。此外,引进两个集合S和U。S的......
  • [学习笔记]数据结构_线性表_顺序表and单链表
    线性表线性表是一种逻辑结构,表示元素之间一对一的相邻关系。顺序表和链表是指存储结构,两者属于不同层面上的概念。线性表的基本操作boolInitList(&L)//初始化表,构造一个空的线性表intLength(L)//求表长。返回线性表L的长度,即L中数据元素的个数intLocateElem(L,e)//按......
  • R数据结构-列表
    列表(List)是一种数据结构,它可以包含不同类型的对象,包括向量、矩阵、数据框、函数等。列表允许您将多个对象组合到一个结构中,以便以统一的方式进行处理和访问#创建一个包含向量、矩阵和数据框的列表vec<-c(1,2,3)mat<-matrix(1:9,nrow=3)df<-data.frame(x=c(1,2......
  • 《数据结构》之栈和堆结构及JVM简析
    导言:在数据结构中,我们第一了解到了栈或堆栈,它的结构特点是什么呢?先进后出,它的特点有什么用呢?我们在哪里可以使用到栈结构,栈结构那么简单,使用这么久了为什么不用其它结构替代?一.程序在内存中的分布作为一个程序猿,我们应该会常常跟代码打交道,那么我们所编写的程序或代码,是怎么跑......
  • 第二章 变量与运算符
    1.关键字‍定义:被Java语言赋予了特殊含义,用作专门涌入的字符串(或单词)‍例如:关键字class,public,static,void等早就已经被定义好的‍特点:全部关键字都是小写字母2.标识符‍定义:凡是自己可以命名的地方都叫标识符‍标识符的命名规则:​​由26......
  • C/C++数据结构设计题[2023-06-04]
    C/C++数据结构设计题[2023-06-04]停车场模拟管理程序的设计与实现1.设计目的理解线性表的逻辑结构和存储结构,进一步提高使用理论知识指导解决实际问题的能力。2.问题描述设停车场只有一个可停放几辆汽车的狭长通道,只有一个大门可供汽车进出。汽车在停车场内按车辆到达的先后顺......