博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
链表结构详解
阅读量:5139 次
发布时间:2019-06-13

本文共 922 字,大约阅读时间需要 3 分钟。

链表是最简单的动态数据结构,数据存储在节点(Node)中,其节点的数据结构如下:

class Node{    E e;//数据存储的地方    Node next;//也是一个节点,他指向当前节点的下一个节点}

我们可以把链表理解成为一个火车,每个链表,其实就是一节车厢,数据存储在车厢中中,而每个火车节都有一个指针,连接着下一个火车节。

链表有一个优点:

  真正的动态数据结构,无需关系创建的空间是否过大,不需要像数据一样担心容量的问题。

缺点:

  不能像数组那样,给一个索引就能查找到指定的值。

链表和数组的对比:

 

 

链表的简单数据结构:

public class LinkdList
{ private class Node{ public E e; //data数据 public Node next; //指向下一节点的指针 } //链表的头部 private Node head; //节点的长度 private int size; //有参无参构造方法 public Node(E e, Node next){ this.e = e; this.next = next; } public Node(E e){ this(e, null); } public Node(){ this(null, null); }}

其中dade也就是存储数据的地方,而Node也是一个节点,他指向着下一节点的Node,而头指针永远都是指向第一个有效的数据节点,不管链表是否为空,头指针均不为空,头节点是为了操作方便而设立的,放在第一个有效数据之前,没有什么意义,一般都是存放链表的长度,头结点不一定是链表的必要元素。

而最后一个节点的Node指向的则是空。

下面是我自己画的简单结构图:(也就是单向链表)

 

 

 

 

 

 

转载于:https://www.cnblogs.com/itiande/p/9537296.html

你可能感兴趣的文章
Java-P:对象创建
查看>>
IIS 配置
查看>>
软件人机界面设计
查看>>
requests模块下载视频 显示进度和网速
查看>>
Elasticsearch 学习之 分片未分配原因
查看>>
.NET项目从CI到CD-Jenkins_Pipeline的应用
查看>>
E2.(b)
查看>>
ini 解析库,config 解析库不完全列表
查看>>
awk常见操作整理(更新)
查看>>
javaEE项目实践——学生信息管理系统
查看>>
E. Black Box
查看>>
( ̄▽ ̄") 没钱了
查看>>
模拟退火算法实现代码
查看>>
代码中动态添加Button的点击事件
查看>>
【luogu P2071 座位安排】 题解
查看>>
两道FFT的应用题
查看>>
STL next_permutation 全排列
查看>>
IntentActivity的用法(activity的五态之外)
查看>>
小米手机不断自己重启问题解决
查看>>
软件测试为何我会首选Python
查看>>