数据结构-线性表

原创 2016年05月30日 20:33:08

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

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

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

C语言数据结构之线性表的基本操作

线性表的基本操作 内容: (1)顺序表的操作 输入一组整型元素序列,建立线性表的顺序存储结构。实现该线性表的遍历。在该顺序表中查找某一元素,查找成功显示查找元素,否则显示查找失败。在该顺序表中删...

数据结构与算法 线性表

  • 2015年03月19日 22:59
  • 2.37MB
  • 下载

数据结构 线性表

  • 2015年07月17日 22:21
  • 21KB
  • 下载

[Java数据结构]线性表之队列

》》原理 就像排队,先来的先走,后来的等在后面。 》》思路 定义一个数组存放,头指针front指向表头,每次移走一个元素front+1,rear指向头尾,每次增加一个元素rear+1。注意移走和...

数据结构线性表操作

  • 2015年05月22日 14:19
  • 3KB
  • 下载

线性表_数据结构

  • 2015年04月05日 13:33
  • 6.15MB
  • 下载

数据结构题集(严蔚敏版)题目——第二章 线性表

数据结构题集(严蔚敏版)题目——第二章 线性表题目选作。

数据结构课件第二章-线性表

  • 2014年10月04日 01:06
  • 2.6MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:数据结构-线性表
举报原因:
原因补充:

(最多只允许输入30个字)