数据结构-线性表

原创 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语言写了线性表的一些基本操作,包括插入、删除等等。经过测试,代码正确,直接上代码吧。 #include #include #d...

数据结构线性表

  • 2015-05-01 15:28
  • 190KB
  • 下载

数据结构与算法 线性表

  • 2015-03-19 22:59
  • 2.37MB
  • 下载

<记录>从零学数据结构算法——线性表

1.定义一个接口 IList .javapackage zcf; /** * 增删改查 输出 遍历 * @author zcf * */ public interface IList { ...

数据结构 线性表

  • 2015-07-17 22:21
  • 21KB
  • 下载

数据结构线性表操作

数据结构:线性表

数据结构:线性表 Eclipse java 工程: 单链接、双链表 demo: http://download.csdn.net/detail/keen_zuxwang/9875224 线性...

线性表_数据结构

  • 2015-04-05 13:33
  • 6.15MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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