Python算法札记3-链表

作者: 皮皮大 | 来源:发表于2019-08-10 15:34 被阅读14次

链表

什么是数据结构

数据存储于计算机的内存中,决定数据存储的顺序和位置的便是数据结构。数据在内存中是线性排列的。可以使用指针等工具,构造复杂的“树形”型等复杂结构。

链表特点

链表是数据结构之一,其中的数据呈现线性排列。链表中的数据进行添加和删除非常方便,访问耗时间。

指针:每个数据都有一个指针,用于指向下一个数据的内存地址

image.png

在链表中,数据一般是分散存储于内存中,无需连续存储。

  • 访问:因为无序和分散存储,所以访问数据的话,只能从头开始,称之为顺序访问
  • 添加:改变添加位置前后的指针指向即可
  • 删除:也是改变指针指向,数据本身还是存在;但是没有指针指向这个数据,所以无法访问到该数据

运行时间

将链表中的数据量记为n,

  • 访问:如果数据在末尾,需要从头开始线性查找,需要的时间就是O(n)
  • 添加和删除:只是单纯的改变指针指向,和n无关,所以时间是O(1)

其他链表

循环链表

在链表尾部使用指针,使其指向指针链表头部的数据,形成一个闭环,称之为循环链表

  • 没有头和尾的概念
  • 保存固定数量的最新数据常用循环链表
image.png
双向链表

指针设为两个,分别指向指针前后的数据,称之为双向链表

  • 可以前后双向访问数据
  • 指针数量增加,会带来存储空间的增加
  • 添加和删除数据时候需要改变更多的指针指向
image.png

相关文章

  • Python算法札记3-链表

    链表 什么是数据结构 数据存储于计算机的内存中,决定数据存储的顺序和位置的便是数据结构。数据在内存中是线性排列的。...

  • leetcode 234: 判断是否是回文链表

    链表的定义: 链表的构建: 构建出来的链表为:1->2->3->3->2->1或者1->2->3->4->3->2...

  • python实现循环单链表

    参考: 用Python实现的数据结构与算法:链表

  • python链表及算法

    实现了python单向链表及一些算法题

  • 翻转链表

    翻转链表 描述翻转一个链表 样例给出一个链表1->2->3->null,这个翻转后的链表为3->2->1->nul...

  • lintcode 32 翻转链表

    翻转一个链表 样例:给出一个链表1->2->3->null,这个翻转后的链表为3->2->1->null

  • 链表-重复值问题

    场景1 链表升序有序,去掉链表中重复的节点eg:1->1->2->3->3->4->5->5结果1->2->3->...

  • 35. 翻转链表

    描述 翻转一个链表 样例 给出一个链表1->2->3->null,这个翻转后的链表为3->2->1->null 挑...

  • 01-链表原地翻转

    题目 翻转一个链表。给出一个链表1->2->3->null,这个翻转后的链表为3->2->1->null要求原地翻...

  • 35.翻转链表(Python)

    描述给定一个链表1->2->3->null,这个翻转后的链表为3->2->1->null。 Solution思路:...

网友评论

    本文标题:Python算法札记3-链表

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