📅  最后修改于: 2023-12-03 15:16:31.482000             🧑  作者: Mango
单链表是一种常用的数据结构,在Java中也有很好的实现。本文将介绍Java中单链表的概念、基本操作和实现代码。
单链表是一种线性数据结构,其基本结构由节点组成,每个节点包括数据和指向下一个节点的指针。单链表的头节点存储了链表的第一个元素,尾节点指向NULL。
单链表支持的基本操作包括插入元素、删除元素和遍历链表等。
插入元素可以在链表中任意位置插入一个新节点,在Java中可以使用如下代码实现:
public void insertNode(int data,int position){
Node node = new Node(data);
if(position == 1){
node.next = head;
head = node;
return;
}
Node prevNode = head;
for(int i=1;i<position-1;i++){
prevNode = prevNode.next;
}
node.next = prevNode.next;
prevNode.next = node;
}
删除元素可以在链表中任意位置删除一个节点,在Java中可以使用如下代码实现:
public void deleteNode(int position){
if(position == 1){
head = head.next;
return;
}
Node prevNode = head;
for(int i=1;i<position-1;i++){
prevNode = prevNode.next;
}
Node curNode = prevNode.next;
prevNode.next = curNode.next;
}
遍历链表可以输出链表中每个节点的数据,在Java中可以使用如下代码实现:
public void traverse(){
Node curNode = head;
if(head == null){
System.out.println("LinkedList is empty!");
return;
}
while(curNode != null){
System.out.print(curNode.data + " ");
curNode = curNode.next;
}
System.out.println();
}
在Java中,单链表的实现代码如下:
public class LinkedList{
private class Node{
int data;
Node next;
public Node(int data){
this.data = data;
next = null;
}
}
private Node head;
public LinkedList(){
head = null;
}
public void insertNode(int data,int position){
Node node = new Node(data);
if(position == 1){
node.next = head;
head = node;
return;
}
Node prevNode = head;
for(int i=1;i<position-1;i++){
prevNode = prevNode.next;
}
node.next = prevNode.next;
prevNode.next = node;
}
public void deleteNode(int position){
if(position == 1){
head = head.next;
return;
}
Node prevNode = head;
for(int i=1;i<position-1;i++){
prevNode = prevNode.next;
}
Node curNode = prevNode.next;
prevNode.next = curNode.next;
}
public void traverse(){
Node curNode = head;
if(head == null){
System.out.println("LinkedList is empty!");
return;
}
while(curNode != null){
System.out.print(curNode.data + " ");
curNode = curNode.next;
}
System.out.println();
}
}
本文介绍了Java中单链表的概念、基本操作和实现代码。单链表是一种常用的数据结构,掌握其基本操作对于提升编程能力很有帮助。