Java中链表的实现(超详细)

news/2024/10/22 16:21:37/

        在Java中,链表可以通过创建节点链接节点来实现。以下是一个简单的链表实现示例:

public class LinkedList {Node head; // 头结点// 节点类class Node {int data;Node next;Node(int d) {data = d;next = null;}}// 在链表头部插入节点public void push(int new_data) {Node new_node = new Node(new_data);new_node.next = head;head = new_node;}// 在链表中间插入节点public void insertAfter(Node prev_node, int new_data) {if (prev_node == null) {System.out.println("The given previous node cannot be null");return;}Node new_node = new Node(new_data);new_node.next = prev_node.next;prev_node.next = new_node;}// 在链表尾部插入节点public void append(int new_data) {Node new_node = new Node(new_data);if (head == null) {head = new Node(new_data);return;}new_node.next = null;Node last = head;while (last.next != null)last = last.next;last.next = new_node;return;}// 删除链表中的给定节点public void deleteNode(int key) {Node temp = head, prev = null;if (temp != null && temp.data == key) {head = temp.next;return;}while (temp != null && temp.data != key) {prev = temp;temp = temp.next;}if (temp == null)return;prev.next = temp.next;}// 打印链表public void printList() {Node tnode = head;while (tnode != null) {System.out.print(tnode.data + " ");tnode = tnode.next;}}// 测试public static void main(String[] args) {LinkedList list = new LinkedList();list.append(6);list.push(7);list.push(1);list.append(4);list.insertAfter(list.head.next, 8);System.out.println("Created Linked list is: ");list.printList();list.deleteNode(1);System.out.println("\nLinked List after Deletion of 1:");list.printList();}
}


输出:

Created Linked list is:
1 7 8 6 4
Linked List after Deletion of 1:
7 8 6 4


        在这个示例中,我们创建了一个 LinkedList 类,它包含一个 Node 类一些方法来操作链表。我们可以使用 push() 方法在链表的头部插入节点,使用 insertAfter() 方法在链表中间插入节点,使用 append() 方法在链表尾部插入节点,使用 deleteNode() 方法删除链表中的给定节点,并使用 printList() 方法打印链表


http://www.ppmy.cn/news/79059.html

相关文章

Linux - 第17节 - 网络基础(应用层三)

1.HTTPS协议 1.1.HTTPS简介 HTTPS也是⼀个应⽤层协议,是在HTTP协议的基础上引⼊了⼀个加密层。 HTTP协议内容都是按照文本的方式明文传输的,明文传输是不安全的,所以现在主流的解决 方式是在http所在的应用层和tcp所在的传输层之间加一层SSL…

OS7安装rabbitmq

1.卸载存在的rabbitmq 停止rabbitmq服务: systemctl stop rabbitmq-server 查看rabbitmq安装的相关列表: yum list | grep rabbitmq 卸载rabbitmq已安装的相关内容: yum -y remove rabbitmq-server.noarch 查看erlang安装的相关列表: yum list | grep erlang 卸…

数据库知识点

1索引 介绍 索引本质上是一张表,保存了主键与索引字段,在对数据做频繁的查询或排序时,可在某些字段上添加索引,提高检索的的效率,降低IO成本,并可以使用索引列,对数据进行排序,降低…

10 对象和类

1.访问控制和数据隐藏 公有成员函数是程序和对象的私有成员之间的桥梁,提供了接口 2.类和结构 结构的默认访问类型是:public 类的默认访问类型是:private 3. 成员函数的内联 定义位于类声明中的函数,为内联函数 也可以现在类内进行…

LRU Cache

前言 哈喽,各位小伙伴大家好,本章内容为大家介绍计算机当中为了提高数据相互传输时的效率而引进的一种重要设计结构叫做LRU Cache,下面将为大家详细介绍什么是LRU Cache,以及它是如何是实现的,如何提升效率的。 1.什么是LRU Cache? LRU是L…

测牛学堂:2023软件测试学习教程之sql的分页查询

查重 所谓的查重,就是过滤返回数据中重复的记录。 语法关键字:distinct select distinct 字段列表 from tableName [where 子句]注意: distinct的位置有两个地方,一个是放在select后面,对筛选出来的数据去重。 一个是…

NetSuite SuiteTax之中国影响

这篇是还账。3个月前林师傅给的一个题目,陆陆续续的学习,一直没有弄完,直到今朝。 SuiteTax是2018年GA的一个重大功能,是NetSuite面向国际市场的一个标志动作。它将过去以美国为中心的税务功能,转向为国际市场服务。只…

泰克MDO4104C(Tektronix) mdo4104c混合域示波器

泰克 MDO4104C混合域示波器,1 GHz,4 通道,2.5 - 5 GS/s,20 M 点 ​泰克 MDO4104C 示波器是一款 6 合 1 集成示波器,可以配置可选的频谱分析仪、任意波形/函数发生器、逻辑分析仪、协议分析仪和 DVM/频率计数器。当配置…