“设图纸”的数据结构和算法 (二)线性表

本文介绍了线性表的概念和数据类型,强调了线性关系的特性。线性表有两种物理存储方式:顺序存储和链式存储。顺序存储结构适合元素稳定、不频繁插入删除的情况,具有快速存取但插入删除效率低的特点。链式存储结构允许在内存中任意位置存储元素,通过指针链接元素,适用于插入删除频繁的场景。文章还讨论了头指针和头结点在链式存储中的角色和作用。
摘要由CSDN通过智能技术生成
  • 线性表的定义:由零个或多个数据元素组成的有限序列(n=0时为空表)

注意:线性关系的条件是如果存在多个元素,则“第一个元素无前驱,而最后一个元素无后继,其他元素都有且仅有一个前驱和后继”

 

  • 数据类型:是指一组性质相同的值的集合及定义在此集合上的一些操作的总称

 

  • 线性表有两种物理存储结构:顺序存储结构和链式存储结构

 

  • 顺序存储结构:用一段地址连续的存储单元依次存储线性表的存储元素

 

  • 顺序存储结构封装需要三个属性
    1. 存储空间的起始位置,数组data,它的存储位置就是线性表存储空间的存储位置
    2. 线性表的最大存储容量:数组的长度MaxSize
    3. 线性表的当前长度:length

 

  • 线性表的顺序存储结构,在存、读数据时,不管是哪个位置,时间复杂度都是O(1)。而在插入或删除时,时间复杂度都是O(n)。这就说明,它比较适合元素个数比较稳定,不经常插入和删除元素,而更多的操作是存取数据的应用。

 

  • 顺序存储结构的优缺点
    1. 优点:无需为表中元素之间的逻辑关系而增加额外的存储空间,可以快速的存取表中的任意位置的元素
    2. 缺点:插入和删除操作需要移动大量元素,当线性表长度变化较大时,难以确定存储空间的容量。易造成存储空间的“碎片”。

 

  • 线性表的链式存储结构
    1. 链式存储结构的特点是用一组任意的存储单元存储线性表的数据元素,这组存储单元可以存在内存中未被占用的任意位置。
    2. 比起顺序存储结构,在链式存储结构中,除了要存储数据元素信息外,还要存储它的后继元素的存储地址(指针)
    3. 我们把存储数据元素信息的域称为数据域,把存储指向后继位置的指针信息的域称为指针域。指针域中存储的信息称为指针或链。这两部分组成数据元素称为存储映像,称为结点。
    4. 链表中的每个结点中只包含一个指针域,所以叫做单链表。

 

  • 头指针
    1. 头指针是指链表指向第一个结点的指针,若链表有头结点,则是指向头结点的指针
    2. 头指针具有标识作用,所以常用头指针冠以链表的名字(指针变量的名字)
    3. 无论链表是否为空,头指针均不为空
    4. 头指针是链表的必要元素

 

  • 头结点
    1. 头结点是为了操作的统一和方便而设立的,放在第一个元素的结点之前,其数据域一般无意义(但也可以用来存放链表的长度)
    2. 有了头结点,对在第一元素结点前插入结点和删除第一结点起操作与其他结点的操作就统一了
    3. 头结点不一定是链表的必要元素

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值