数据结构-详解线性表

一.定义

线性表是最基本、最简单、也是最常用的一种数据结构。

一个线性表是n个具有相同特性的数据元素的**有限序列。**也就是说元素之间是有顺序的。

前驱元素:若A元素在B元素的前面,则称A为B的前驱元素
后继元素:若B元素在A元素的后面,则称B为A的后继元素

二.特征

数据元素之间具有一种“一对一”的逻辑关系。
1.第一个数据元素没有前驱,这个数据元素被称为头结点
2.最后一个数据元素没有后继元素,这个数据元素被称为尾结点
3.除了第一个和最后一个元素以外,其他数据元素有且仅有一个前驱和后继。

三.分类

线性表中数据存储的方式可以是顺序存储,也可以是链式存储,按照数据的存储方式不同,可以把线性表分为顺序表链表

3.1顺序表

顺序表是在计算机内存中以数组的形式保存的线性表。
线性表的顺序存储是指有一组地址连续的存储的单元,依次存储线性表中的各个元素。
顺序表的时间复杂度:
查询:O(1)
插入:O(n)
删除:O(n)

3.2链表

链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。

3.3顺序表和链表的比较

顺序表和链表的优缺点比较
顺序表(静态分配)
优点:
(1).结构简单,易于理解;
(2).存储空间连续,方便随机访问表中的每个元素,时间复杂度为O(1);
(3).不需要再为表示节点间的逻辑关系而增加额外的存储空间;
(4).尾插,尾删效率高,时间复杂度为O(1);
(5).CPU缓存利用率高;
缺点:
(1)插入和删除比较慢,时间复杂度为O(N);
(2)长度固定,必须在分配内存之前确定数组长度;
(3)易造成存储空间的利用率低(分配的数组长度过大,就会造成多余的空间得不到利用);

链表(动态分配)
优点:
(1)物理存储单元上非连续,而且采用动态内存分配,能够有效的分配和利用资源;
(2)节点的插入和删除操作简单,不需要内存空间的重组;
缺点:
(1)不能随机访问,只能从头节点开始顺序查找;
(2)数据结构较为复杂,需要大量指针操作,容易出错;

总结:顺序表和链表各有各的优缺点,要视具体情况来确定使用,如需进行频繁插入和删除操作,且很少进行查找可以用链表存储。如需要频繁查找操作,很少插入和删除操作,可以用顺序存储。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值