关闭

数据结构-线性表

标签: 数据结构线性表
100人阅读 评论(0) 收藏 举报

线性表(Linear List)又称有序表(Ordered List),是数学概念在计算机科学中的一种最基本和简单的数据结构。简单地说,线性表是n个元素的有限序列(n>=0),如26个英文字母组成的字母表;十个阿拉伯数字组成的数列;这些都是线性表。由此可见,线性表的元素可以是任何一种数据类型,但是同一数据表的数据类型必须一致。
线性表中,除了第一个元素a(1)外,任何元素都有唯一的前驱(precessor);除了最后一个元素a(n)外,任何元素都有唯一的后继(successor)。
按照在计算机中内存存储的方式,线性表分为:顺序存储和链式存储。

  1. 顺序存储(静态数据结构)
    它是一种将有序列表的数据使用连续分配空间进行存储的方式,也就是说顺序存储中两个相邻元素在内存中也是相邻的,这是顺序存储区别于链式存储的根本原因。数组类型就是典型的顺序存储方式。优点是查询的时间复杂度为O(1),通过首地址和偏移量就可以直接访问到某元素。缺点是插入和删除的时间复杂度最坏能达到O(n),如在第一个位置插入一个元素,你需要把数组的每一个元素向后移动一位,删除元素以此类推。另外,顺序存储中,内存在编译时就要分配给相关的变量。因此数组在建立初期,必须事先声明最大可能的固定存储空间,势必造成内存的浪费。

  2. 链式存储(动态数据结构)
    它是一种将有序列表的数据使用不连续存储空间来存储的方式。例如指针就是典型的链式存储,每一个元素都有一个指针域,指针域存储到下一个元素的指针。链表也是典型的链式存储方式。链式存储的动态存储特点使得它具有和顺序存储截然相反的优缺点。优点是插入和删除元素的时间复杂度为O(1),不会移动大量数据。动态结构的内存分配在执行时才发生,不需要事先声明,能够充分节省内存。缺点是访问的时间复杂度最坏为O(n),关于查找的算法很少,一般只能遍历。
    总之,顺序存储和链式存储各有优缺点,要根据实际情况选取存储方式。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:3114次
    • 积分:118
    • 等级:
    • 排名:千里之外
    • 原创:9篇
    • 转载:0篇
    • 译文:0篇
    • 评论:4条
    文章分类
    最新评论