Java - Linked List (链表)

Linked List

  • 单链表
  • 双链表
  • 循环链表

基本定义

参考讲解:https://www.bilibili.com/video/BV1w7411Y7Dp?spm_id_from=333.337.search-card.all.click

链表是一种数据结构,和数组同级。比如,Java中我们使用的ArrayList,其实现原理是数组。而LinkedList的实现原理就是链表了。链表在进行循环遍历时效率不高,但是插入和删除时优势明显。

链表是通过结点(Node)构成,head指针指向第一个成为表头结点(头结点不存放数据),而终止与最后一个指向null的指针。

image

单链表 Singly Linked List

单链表由像链一样链接在一起的节点组成。现在要访问这个链,我们需要一个指针来跟踪列表的第一个元素。只要我们有关于第一个元素的信息,我们就可以遍历列表的其余部分,而不必担心记住它们的存储位置。单链表包含一个头节点:指向列表第一个元素的指针。每当我们想要遍历列表时,我们都可以使用这个头节点来实现。

下面是单链接的基本结构:

// 创建一个类:Node
// Node 类将数据存储在单个节点中。它可以存储原始数据,例如整数和字符串以及具有多个属性的复杂对象
// 除了数据,它还存储指向列表中下一个元素的指针,这有助于像链一样将节点链接在一起

class Node{

	// Class node having Generic data-type <T>
	public T Data; // Data to store (Could be int, string, Object etc.)
	public HereNode nextNode; // 指针,用来指向下一个结点(Pointer to next node in list)

	public Node headNode; // 定义链表的头结点
	public int size; // 链表的长度

	// constructor 构造方法: 和类class同名
	// 在构造函数中,我们初始化headNode节点,使其成为函数
	// 如果头节点不指向任何东西(NULL),这意味着列表为空

	public Node( ){
		headnode = null; //头结点为null, 列表为空值
		size = 0;
	}
}

相关文章

这篇文章主要介绍“基于nodejs的ssh2怎么实现自动化部署”的...
本文小编为大家详细介绍“nodejs怎么实现目录不存在自动创建...
这篇“如何把nodejs数据传到前端”文章的知识点大部分人都不...
本文小编为大家详细介绍“nodejs如何实现定时删除文件”,内...
这篇文章主要讲解了“nodejs安装模块卡住不动怎么解决”,文...
今天小编给大家分享一下如何检测nodejs有没有安装成功的相关...