1.1 线性表的定义
一个线性表是n(n>=0)个元素的有限序列,通常表示为(a1,a2,a3…,an)。非空线性表的特点如下:
1)存在唯一的表头和表尾
2)除第一个元素外,序列中的每个元素均只有一个直接前驱。
3)除最后一个元素外,序列中的每个元素均只有一个直接后驱。
1.2 线性表的存储结构
线性表的存储结构分为顺序存储和链式存储
1)顺序存储
用一组地址连续的存储单元依次存储线性表中的数据元素,从而使得逻辑上相邻的两个元素在物理位置上也相邻,在这种存储方式下,元素的逻辑关系无需占用额外的空间来存储。
以LOC(ai)表示线性表中第一个元素的存储位置,在顺序存储结构中,第i个元素ai对存储位置为:
LOC(ai)=LOC(a1)+(i-1)*L
L是表中每个数据元素所占空间的字节数
优点:可以随机存储表中的元素
缺点:插入和删除的操作需要移动元素
举例说明:体育课排队,按个字从高到矮从左到右排队,这时候突然迟到的中等个子小王同学来了,老师让他进入队列,那么就要从比他高一点点的小李同学后面拨出一个空位让小王插入,而比小王矮的同学因为小王的插入都需要往右移动一位。
2)链式存储
用节点来存储数据
数据域用于存储数据元素的值,指针域则存储当前元素的直接前驱或者直接后继的位置信息,指针域中的信息称为指针or链
存储各数据元素的结点的地址并不要求是连续的,因此存储数据元素的同时必须存储元素之间的逻辑关系
优点:插入和删除操作无需移动元素,操作方便
缺点:增加了存储空间的开销,不能随机访问
举例说明:带一帮小朋友去看电影,但是电影院没有连续的座位了,这个时候怎么安排呢?有一种方式就是小明同学先坐下(1排1座),然后让他记住小红同学的座位(3排5座),再让小红同学记下小芳同学的座位(7排4座)……依次,即使中间来了一个小风同学,也可以让小郭同学记下小风的座位号,然后让小风去记下小郭同学本来记的那位同学的座位号,这个可以理解为链式存储
3)其它链表结构

  • 双向链表:每个节点包含两个指针,分别指出当前结点元素的直接前驱和直接后继
  • 循环链表:在单向链表或者双向链表的基础上令表结尾的结点的指针指向第一个节点,构成循环链表。其特点是可以从表中任意节点开始遍历整个链表
  • 静态链表:借助数组来描述线性表的链式存储结构

1.3 栈和队列
1)栈的定义
栈是只能通过访问它的一端来实现数据存储和检索的一种线性数据结构,按照先进后出的原则进行。在栈中进行插入和删除操作的一端称为栈顶(top),相应地,另一端称为栈底(bottom)。
顺序存储:用一组地址连续的存储单元依次存储自栈顶到栈底的数据元素,同时附设指针top指示栈顶元素的位置。在顺序栈中,需要判断是否栈满(栈空间中没有空闲单元),否则如果栈满,元素入栈会发生上溢现象。
链式存储:栈中元素的插入和删除仅在栈顶一段进行,因此不必另外设置头指针,链表的头指针就是栈顶指针
举例说明: 平时洗碗洗碟子的时候,洗完的碟子总是从下往上堆起来,如果下次要用到这堆碟子,肯定是从最上方的碟子拿起,而这个最上方的碟子,就是上一次洗碗的时候最后洗完的那一只碟子。这就是先进后出原则。
2)队列
队列是一种先进先出(First In First Out,FIFO)的线性表,它只允许在表的一段插入元素,而在表的另一端删除元素。在队列中,允许插入元素的一段称为队尾(rear),允许删除元素的一端称为队头(front)
队列的顺序存储:顺序队列,它是利用一组地址连续的存储单元存放队列中的元素。由于队列中元素的插入和删除限定在表的两段进行,因此设置队头和队尾指针,分别指出当前的队首和队尾
队列的链式存储:链队列,给链队列添加一个头结点,并令头指针指向头结点。因此,队列为空的判断条件是头指针和尾指针的值相同,且均指向头结点。
举例说明:我们在排队买票的时候,插入的人是在队伍最后排插入,而买完票的人会从队伍最前排离开,这就是先进先出。如果队伍中没人,那么头指针和尾指针的值是相同的,而且都指向卖票口,这就是队列为空
1.4 串
1)串的定义
串是仅由字符构成的有限序列,是取值范围受限的线性表。
S=’a1a2…an’
其中S是串名,单引号括起来的字符序列是串值
2)串的几个基本概念

  • 空串:长度为零的串,空串不包含任何字符
  • 空格串:由一个或多个空格组成的串。虽然空格是要给空白的字符,但是它也是一个字符,在计算串长度时要将其计算在内
  • 子串:有串中任意长度的连续字符构成的序列称为子串。含有子串的串称为主串。子串在主串中的位置是指子串首次出现时,该子串的第一个字符在主串中的位置。空串是任何串的子串。举例:主串为abcde,子串为cb
  • 串相等:指两个串长度相等且对应序列号的字符也相同
  • 串比较:两个串比较大小时以字符的ASCII码值(或者其他字符编码集合)作为依据。实质上,比较操作从两个串的第一个字符开始进行,字符的码值大者所在的串为大,若其中第一个串先结束,则以串长较大者为大

软件设计师数据结构之线性结构复习小结相关推荐

  1. 软件设计师(中级)详细复习过程总结

    软考复习过程总结 前言 背景 1.1 软考是什么 1.2 软考的含金量 1.3 软考书籍 软考前相关学习 2.1专业知识学习 2.2 J2SE视频 2.3 设计模式 2.4 软件设计师视频 考前两周复 ...

  2. 数据结构:线性结构和非线性结构的区分

    数据结构包括线性结构和非线性结构: 线性结构: (1)线性结构的特点是数据元素之间存在着一对一的线性关系 (2)线性结构由两种不同的存储结构,顺序存储结构和链式存储结构 : ①顺序存储的线性表称为顺序 ...

  3. 数据结构_线性结构和非线性结构

    数据结构 数据结构包括:线性结构和非线性结构 线性结构 线性结构作为最常用的数据结构,其特点是数据元素之间存在一对一的线性关系 线性结构有两种不同的存储结构,即顺序存储结构和链式存储结构.顺序存储的线 ...

  4. 2023年软件设计师中级(考点分析+复习笔记+历年真题+电子版课本

    2023年软件设计师中级(考点分析+复习笔记+历年真题+电子版课本)

  5. 数据结构之线性结构(应用实例)

    本文为数据结构之线性结构(应用实例),根据网课而整合的笔记. 栗子: 设计函数分别求两个一元多项式的乘积与和 该题的输入与输出样例: 求解思路 多项式表示 程序框架 读多项式 加法实现 乘法实现 多项 ...

  6. 软件设计师-数据结构知识

    数据结构是计算机软件的一门基础课程,计算机科学各个领域及有关的应用软件都要用到各种数据结构.语言编译要使用栈.散列表及语法树:操作系统中用队列.存储管理表及目录树等:数据库系统运用线性表.多链表及索引 ...

  7. 软件设计师---数据结构

    笔记有错误欢迎直接在评论区进行纠正!我将不再维护软件设计师笔记! 数据结构上午题9分 复杂度 大O表示法 时间复杂度 这里只是举了六个例子,然后对应的时间复杂度比较抽象,自己去看 讲解地址:时间复杂度 ...

  8. 软件设计师 数据结构1

    以下内容来源于哔哩哔哩UP主zst_2001的视频学习笔记,仅供复习所用 数据结构 1.大O表示法 1.1 时间复杂度 1.2 空间复杂度 1.3.渐进符号 1.4 递归时间.空间复杂度 2.线性结构 ...

  9. java数据结构之线性结构和非线性结构

    数据结构包括 :线性结构和非线性结构. 线性结构 1):线性结构作为最常用的数据结构,其特点是数据元素之间存在一对一的线性关系. 2):线性结构有两种不同的存储结构,即顺序存储结构和链式存储结构.顺序 ...

最新文章

  1. 类的赋值运算符的重载函数
  2. HTML5/CSS3hack
  3. gRPC学习记录(六)--客户端连接池
  4. django.core.exceptions.ImproperlyConfiguredmysqlclient 1.3.13 ornewer is required you have 0.9.2(亲测)
  5. python docx 合并文档 图片_不再为处理PDF烦恼,python处理操作PDF全攻略
  6. testng接口自动化测试_Java+Maven+TestNG接口(API)自动化测试教程(10) 使用 Jenkins 构建自动化测试持续集成...
  7. RDL(C) Report Design Step by Step 2: SubReport
  8. 中国挤奶点控制器市场趋势报告、技术动态创新及市场预测
  9. jquery操作checkbox 和radio
  10. poj 1062 昂贵的聘礼 最短路
  11. EndNote X9导入论文投稿的期刊参考文献格式
  12. C#获取电脑硬盘序列号
  13. Insyde uefi 隐藏设置_uefi版和装机版有什么区别详细分析
  14. java详解 --- JOSN解析
  15. WTL 自绘控件库 (CQsRadioBox)
  16. 苹果icloud解锁_如何绘制苹果iCloud图标– Photoshop教程
  17. 车仪表台上的装饰_45汽车仪表盘装饰_汽车仪表盘种类
  18. 3D打印显神威:世界首颗3D打印卫星将入轨
  19. 雨笋教育技术干货:漏洞分析,Docker CVE-2018-6552
  20. 【HCIA-cloud】【4】服务器虚拟化之存储资源管理:存储资源类型说明、存储配置模式说明【普通、精简、延迟置零】、虚拟机磁盘类型说明、FusionCompute中操作添加存储

热门文章

  1. 2021年流动式起重机司机新版试题及流动式起重机司机复审模拟考试
  2. JAVA-SE基础篇-非静态内部类
  3. 图像搜索引擎搭建 VP-Tree 以图搜图
  4. 国际物流集运系统源码,海外仓储一件代发系统
  5. 自然语言处理(NLP)数据集汇总 2(附下载链接)
  6. U盘插入有响应但找不到U盘的解决方法
  7. mac类似Winscp的软件ForkLift使用
  8. banner背景通栏
  9. HDU 5172 GTY's gay friends 线段树+前缀和+全排列
  10. 统计mysql中学科引用表中学科引用次数