数据结构——线性表

作者: 埃赛尔 | 来源:发表于2017-08-02 19:06 被阅读6次

什么是线性表:
零个或者多个数据元素的有限序列,这些定义就简单的说下就行了,相信大家都能明白,然而我要说的是线性表的几种存储结构

顺序存储结构 (大家都明白,不做赘述)

大家常用的就是顺序存储结构,例如一个数组,或者java中的 ArrayList
优点:
1 无需为表中元素之间的逻辑关系而增加额外的存储空间
2 可以快速的存取表中的任一位置的元素
缺点:
1 插入和删除元素操作需要移动大量的元素
2 当线性表的长度变化较大时,难以确定存储空间的容量
3 造成存储空间的碎片

链式存储结构

为了解决插入操作和删除操作带来的巨大消耗,对于需要频繁增加删除的线性存储结构推荐使用链表,相对于一段连续的存储区域,链表结构通过:前一个元素保存后一个元素的指针(引用)的方式产生松散的数据存储结构,保证内存的有效利用,而且减少了插入删除带来的内存消耗。

单链表:

单链表相比于顺序线性表的顺序存储结构而言,多了一个指向后继数据元素的指针(或者持有后继元素的引用),当其后继元素没有时(处于表尾)后继指针指向空。看下边:
public class LinkedListItem<T> {

    public T data; //内容

    public LinkedListItem<T> cur; //后继元素的引用 

}

单链表的整表创建:
1 使用让新的节点在第一位置,这种算法简称:头插法。
2 反之每次新结点都插在终端结点的后面,这种算法简称:尾插法。

静态链表:

相比于普通单链表这种松散的存储结构,想要对存储结构的长度进行限制以及对已经删除了的元素所占用的空间加以利用,普通单链表是难以做到的。然而静态链表则建立在一块连续的存储存储地址上(或者是数组中)
为了明白什么是静态链表我们先要知道静态链表的几个设计:
1 数组第一个和最后一个元素作为特殊元素处理,//不存数据
2 我们把未使用的数据元素称为备用链表
3 数组的第一个元素,即下标为0的元素的cur只存放备用链表的第一个结点的下标
4 数组的最后一个元素的cur则存放第一个有数值的元素的下标(想要知道第一个存放数据的元素在哪里必须访问数组的尾结点)相当于头结点的作用。

什么是静态链表:
1 第一个元素嫉妒空闲空间的第一个元素的下标。
2 每个元素(除了数组的第一个元素和最后一个元素不存数据作为特殊元素处理)持有下一个元素的下标(引用)——这是链表的共性
3 数据元素的下一个位置数据为null时,则其持有的下标为0.因此 该元素表示数据元素的尾结点。
4 数组最后一个元素的cur用来存放第一个插入元素的下标
概念摘出:
第一个元素:无视有无数据,数组的第一个元素
每个元素: 无视有无数据,数组中的每个元素
数据元素:存放有数据的元素
数组最后一个元素:无视有无数据,数组的最后一个元素。

循环链表

将单链表中终端结点的指针端由空指针指向头结点,就使整个单链表形成一个环,这种头尾相接的单链表称为单循环链表,简称循环链表

双向链表

双向链表是在单链表的每个结点中,再设置一个指向前驱结点的指针域

相关文章

  • 目录 - 数据结构

    总目录 数据结构 第01局:绪论 数据结构 第02局:线性表 上 数据结构 第03局:线性表 下 数据结构 第04...

  • iOS设计模式--迭代器

    学习迭代器之前,先看一种数据结构--线性表 线性表:线性表是最基本,最简单,也是最常用的一种数据结构。 线性表中数...

  • Java造轮子-数据结构-线性表

    数据结构-线性表 @(数据结构) 线性表是数据结构中的逻辑结构。可以存储在数组上,也可以存储在链表上。 顺序表(数...

  • 数据结构与算法02——线性表

    一、 线性表线性表是最基本、最简单、也是最常用的一种数据结构。线性表(linear list)是数据结构的一种,一...

  • 23-二叉树基础(上):什么样的二叉树适合用数组来存储?

    前面讲的都是线性表结构,栈、队列等等。今天讲一种非线性表结构,树。树这种数据结构比线性表的数据结构要复杂得多,内容...

  • 数据结构之线性表

    数据结构之线性表 1. 什么是线性表 线性表是一种最常用,最简单的一种数据结构。它是n个数据元素的有限序列。n 为...

  • 玩转数据结构之线性表

    0. 序言 学习数据结构的第一步,让我们来了解下线性表。 1. 概念 线性表是最基本的数据结构。一个线性表是由N个...

  • 栈和队列

    栈和队列是两种应用非常广泛的数据结构,它们都来自线性表数据结构,都是“操作受限”的线性表。 栈 栈(Stack):...

  • 2019-06-10

    数据结构线性表自己高数中值定理

  • 数据结构探险之线性表篇(上):顺序表

    数据结构探险之线性表篇 将要学到得: 线性表(链表) 什么是线性表? 线性表是n个数据元素的有限序列 排列之后成线...

网友评论

    本文标题:数据结构——线性表

    本文链接:https://www.haomeiwen.com/subject/wbpylxtx.html