线性表

作者: NengLee | 来源:发表于2020-12-13 00:44 被阅读0次

数据结构:

  • 数据项
  • 数据对象
  • 数据结构
  1. 线性表
  2. 队列
  3. 堆栈
  4. 树 (HashMap(1.8)内置红黑树)
  5. 图论
  6. 排序和查找算法

数组

连续具有相同特征(物理地址 & 逻辑地址)

线性表

零个或多个元素的有限集合

顺序表 List

​ 一种物理顺序和逻辑顺序一致的数据结构。 index[i] : i:下标[i] 和 capacity[i] 一致。

ArrayList结构
  1. ArrayList 内部是 Object[]

    1. arrayCopy(a,index,a,index+1,s-index)
    2. 扩容 capacity 有俩中,初始化,在add时候10,不够通过 newCapacity << 1
  2. LinkedList 内部是 link<ET> 双项链表

链式表

​ 物理结构上非连续的存储,因为有next指向导致逻辑顺序是线性结构。

单链表 HashMap
HashMap单链表结构

    public class Node<E>{
        Objet data;
        Node<E> next;
    }

    //Add 
    s.next = p.next
    p.next = s
    
    //Remove
    p.next = p.next.next
    
    //Update
    p.Object = new Nede
    
    //Get
    while(p.next !=null){
        p=p.next
    }
  
双链表 LinkedList
LinkedList双链表结构
    public class Node<E> {
        public E item;   
        public Node<E> next;  //下个指向
        public Node<E> prev;   //上个指向 
    }

    /**
    * 增Node 
    * p - [s] - d   //添加s节点。 知道P | 新增S
    * 1. s.next = p.next;
    * 2. p.next.prev = s
    * 3. s.prev = p
    * 4. p.next = s
    */

    
    /**
    *删除Node
    * p - s - d   //删除s节点  知道P
    * 1. p.next.prev = p.prev
    * 2. p.prev = p.next
    */
对比

顺序表、单链表、双链表 优缺点:

  1. 顺序表
    • 优点:连续的存数空间,允许随机访问,末尾删插方便
    • 缺点:非末尾删除、插入效率低,长度固定
  2. 单链表
    • 优点:增删效率高于数顺序表,切长度可以随意修改
    • 缺点:内存不是连续,不能随机查到需要循环
  3. 双链表
    • 同单链表,且效率比单链表更快一些。
数据结构容器数组
  1. List 是一个接口,它继承于Collection的接口,则代表着有序的队列。
  2. AbstractList 是一个抽象类,它继承于AbstractCollection 。AbstractList实现List接口中除size()、get(int location)之外的函数。
  3. AbstractSequentialList 是一个抽象类,它继承于AbstractList.AbstractSequentialList 实现了“链表中,根据index索引值操作链表的全部函数”
  4. ArrayList, LinkedList, Vector, Stack 是List的4个实现类。

缓存算法

  1. FIFO(First In First Out):先进先出(队列)置换算法,按照进入内存的先后顺序排成队列,从队尾进入,从队首删除。该算法会经常淘汰访问的数据。
  2. LRU(Least Recently Used):也就是首先淘汰最长时间未被使用的页面,可能最近也不会访问。缓存图片、分布式在广泛运用。
  3. LFU(Least Frequently Used):也就是淘汰一定时期内被访问次数最少的页。

相关文章

  • 线性表的相关操作

    集合 --- 创建线性表 解散 --- 销毁线性表 长度 --- 得到线性表的长度 出列 --- 从线性表删除一个...

  • [数据结构]第二章线性表(1)——线性表

    线性表 线性表的基本概念 线性表的定义 线性表是具有相同数据类型的n(n>=0)个元素的有限序列。 线性表的基本操...

  • 数据结构与算法(二)

    线性表及其顺序存储结构 线性表的基本概念 线性结构又称为线性表,线性表是最简单也是最常用的一种数据结构。 线性表的...

  • 线性表及应用

    线性表 “线性表(List):零个或多个数据元素的有限序列。” 线性表的顺序存储结构 线性表的顺序存储结构,指的是...

  • 数据结构03-线性表之顺序表

    第三章 线性表之顺序表 第三章 线性表之顺序表一、什么是线性表?1> 概念2> 线性表的基本操作二、线性表的顺序存...

  • 数据结构之线性表

    1、线性表-顺序表线性表-顺序表

  • 线性表数据结构

    线性表 线性表就是数据排成像一条线的结构,每个线性表上的数据最多只有前和后两个方向。与线性表对立的是非线性表,如二...

  • 大话数据结构 - 线性表

    代码GitHub地址 线性表 线性表需要相同的数据类型 线性表的处理方式都是先取代,后目的。比如删除链式线性表的某...

  • 数据结构-线性表(顺序表和链表)

    大纲:理解线性表的逻辑结构掌握线性表的顺序存贮结构和链式存贮结构;掌握线性表基本操作的实现。了解线性表的应用。 线...

  • 数据结构 线性表 单链表 c语言实现可运行

    线性表 线性表概念 线性表定义:具有相同特性数据元素的有限序列。线性表的逻辑结构:线性结构。只有一个表头,只有一个...

网友评论

      本文标题:线性表

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