线性表

线性表

1.线性表定义

线性表:线性表是拥有n个元素的有限序列。

线性表特性:1.线性表存在唯一一个称为第一个的元素。2.线性表存在唯一一个称为最后一个的元素。3.除了第一个元素之外每个元素都有唯一前驱。4.除了最后一个元素之外,每个元素都有唯一后继。

线性表按存储类型:

  1. 顺序存储:用一组地址连续的存储单元依次存储数据。

    • 顺序表
  2. 链式存储:用一组地址任意的存储单元存储数据。

    • 单链表
      • 头插法:从链表头不断插入数据,是逆向构建的过程,输入顺序与生成链表的顺序是相反的。
      • 尾插法:次序相同。
      • 节点插入操作:单链表的插入通常采用的是尾插法
    • 循环链表
    • 双向链表
    • 静态链表(使用一维数组实现的)

关联知识:ArrayList和LinkedList的区别

  • ArrayList的数据结构是动态数组,而LinkedList的数据结构是链表。
  • ArrayList在内存中是顺序存储的,支持随机读取,适用于查询较多的场景;LinkedList在内存中是随机存储的,得从头遍历所有查询效率较低,适用于增删较多的场景。
  • 同时由于链表的节点带有指针域,因此存储空间上的花销比顺序存储更大,存储密度不够大。
  • ArrayList数组在必要时会增长,但数组从不被垃圾回收,列表本身被摧毁前其元素不会被垃圾回收,LinkedList当元素被移除时候会缩小,未使用的节点会被垃圾回收。

Tips:

  • ArrayList的get方法中加入了数组越界的判断,所以set的时候调用get方法隐式地对越界进行了判断。
  • ArrayList的remove方法下标是从数组末尾开始的,方便移除末尾元素。
  • ArrayList的add(双参)方法是先调用add单参方法,然后从末尾开始依次将a[i]=a[i-1],前一个数赋值给后面一个数,直到指定的index为止。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 转自:http://blog.csdn.net/oreo_go/article/details/52116214 ...
    YYT1992阅读 1,069评论 0 4
  • 从数据的逻辑结构来分,数据元素之间存在的关联关系被称为数据的逻辑结构。归纳起来,应用程序中的数据大致哟如下四种基本...
    Jack921阅读 1,003评论 0 2
  • 数据结构是编程的起点,理解数据结构可以从三方面入手: 逻辑结构。逻辑结构是指数据元素之间的逻辑关系,可分为线性结构...
    yhthu阅读 2,336评论 0 6
  • 线性表的定义 结构: 1. 线性结构: 结构中的数据元素之间均满足线性关系(一对一)。 由若干个数据项组成的数据元...
    cean_seven阅读 286评论 0 1
  • 不疑 除第34回外,小说中涉及宝黛二人情根深种之情节极多。 第57回,午觉时分,宝玉到潇湘馆去看黛玉,回廊上看到紫...
    只讀經典阅读 394评论 0 2