算法04-链表

作者: Simon0903 | 来源:发表于2019-05-10 21:36 被阅读0次

链表:

为什么需要链表

顺序结构需要预先知道数据大小来申请连续的存储空间,而进行扩充时又需要进行数据的搬迁,所以使用起来并不是很灵活

链表结构可以充分利用计算机空间,实现灵活的内存动态管理。

链表的定义

链表(linked list)是一种常见的基础数据结构,是一种线性表,但是不像是顺序表一样连续存储数据,而是在每个节点(数据存储单元)里面存放下一个节点的位置信息(即地址)

链表与顺序表的区别:

链表:缺点是失去了顺序表随机读取的优点,且增加了节点的指针域,对于内存的空间开销比较大,优点是对于存储空间会比较灵活,可以是离散存储的

链表的结构图形解析

表元素elem用来存放具体的数据

链接域next用来存放一个节点的位置(Python的标识)

变量P指向链表的头节点(首节点)位置,从p出发能找到表中的任意节点

节点实现

单链表实现

链表的方法实现

is_empty()  链表是否为空

length()  链表长度

travel()遍历整个链表

add(item)增加头部添加元素

append(item)尾部添加元素

insert(pos,item)指定位置插入元素

remove(item)删除元素

逻辑图如下

search(item)查询元素是否存在

相关文章

  • 算法04-链表

    链表: 为什么需要链表 顺序结构需要预先知道数据大小来申请连续的存储空间,而进行扩充时又需要进行数据的搬迁,所以使...

  • 算法04-单循环链表

    简介: 双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向...

  • 数据结构 - 单向链表及相关算法

    单向链表 链表常见算法 链表反转

  • 19 删除链表的倒数第 N 个结点

    题目: 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 自行解答: 算法思路: 其实算法是链表...

  • 04-双向链表

    //清除对象public void clear() {// TODO Auto-generated method ...

  • 算法04-棋牌游戏常用排序算法

    算法04-棋牌游戏常用排序算法 一、介绍 棋牌游戏常用排序算法包括:链式基数排序、插入排序、希尔排序。 二、链式基...

  • 头条-手撕代码

    [toc] 图算法 以及最短路径算法 树算法 手写LRU 排序算法 链表算法

  • 单链表

    单链表一些相关的算法集锦,单链表的算法可以提高逻辑能力。 反转链表 最基本的链表的题目,很简单的迭代操作,需要注意...

  • 大厂面试系列(七):数据结构与算法等

    数据结构和算法 链表 链表,常见的面试题有写一个链表中删除一个节点的算法、单链表倒转、两个链表找相交的部分,这个一...

  • Java实现每日一道算法面试题(20):leecode23 合并

    1.算法题目 合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。 示例: 2.算法思路 算法思...

网友评论

    本文标题:算法04-链表

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