美文网首页
数组与链表

数组与链表

作者: 天际神游 | 来源:发表于2018-08-23 21:53 被阅读0次

数组 (Array)

一段固定的连续的存储单元.
特征:

  • 大小固定: 一般来说, 数组一旦申请成功, 就不能改变大小了
  • 查找O(1): 下标索引会根据数组的内存地址直接计算得到, 所以查找的时间复杂度是O(1)
  • 小心越界: 当查找的返回超过数组边界时, 会报错
// 在Java中新建数组
int[] arr = new int[10];

链表 (List)

链表一般分为单链表和双链表. 其物理存储的位置是不连续的

单链表:

head --> node1 --> node2 --> node3 --> ... --> end

单链表由节点构成:
一个节点一般有两个属性, 以java为例:

public class Node {
    public int value;
    public Node next;
    public Node(int value){
        this.value = value;
    }
}

通过next找到下一个节点, 通过value, 获取当前节点的值
一般遍历链表的方法:

// 如果需要保证 head 不变, 可以声明另外的一个 Node 指向头节点, 然后去遍历
Node node = head;
while(node != null){
    node = node.next;
}

双链表

其节点比单链表多了一个指向之前节点的指针, 详见代码:

public class Node {
    public int value;
    public Node next;
    public Node pre;
    public Node(int value){
        this.value = value;
    }
}

当然还有一些其他的链表, 大同小异.

相关文章

  • 数据结构-链表

    章节 动态数组 & 栈 & 队列 与 链表的不同 链表特性 & 图示 链表实现 & 各操作时间复杂度分析 动态数组...

  • python笔试面试项目实战2020百练2选择排序冒泡排序

    链表与数组 链表的优势在插入元素方面,需要随机地读取元素时,数组的效率很高,因为可迅速找到数组的任何元素。在链表中...

  • 数据结构和算法

    1、数组和链表区别(1)物理存储结构不同。链表与数组在计算中存储元素采用不同的存储结构,数组是顺序存储结构,链表是...

  • 数据结构与算法之美 —— 如何实现LRU缓存淘汰算法?(总结)

    链表与数组 链表定义: 百度百科 数组定义:百度百科 总结:链表和数组最大差别是在内存空间结构上,连续(数组)和...

  • 链表

    链表 缺点:查找复杂有点:定点删除/插入元素 单链表 双向链表 循环链表 双向循环链表 数组与链表的区别 数据存储...

  • 算法与数据结构(四)栈与队列

    上次聊到数组与链表,它们都是线性表,数组与链表的本质区别是内存是否连续,进而得出结论:数组可以在 O(1) 时间复...

  • 大数据(架构师)面试系列(5)

    1.数组与链表的区别是什么? 线性表--数组和链表的区别链表和数组的区别在哪里? 2.Scala函数式编程的特点?...

  • Java集合源码分析之Map(一):超级接口Map

    数组与链表在处理数据时各有优缺点,数组查询速度很快而插入很慢,链表在插入时表现优秀但查询无力。哈希表则整合了数组与...

  • 三、数据结构与算法 — 链表

    链表与数组的区别 链表不是连续的 单链表与循环链表 注意链表中的头结点和尾结点。 循环链表从尾可以方便的到头,适合...

  • 静态链表及C#实现

    静态链表 静态链表是用数组模拟动态链表。 静态链表结构描述 首先,静态链表使用数组来模拟动态链表。数组存放一个节点...

网友评论

      本文标题:数组与链表

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