用java实现一个单链表
时间: 2024-05-12 09:12:58 浏览: 80
java实现单链表
以下是Java语言实现单链表的示例代码:
```java
public class LinkedList {
Node head; // 头结点
// Node 类定义
class Node {
int data;
Node next;
// Node 构造函数
Node(int d) {
data = d;
next = null;
}
}
// 在链表头部插入结点
public void addNode(int data) {
Node new_node = new Node(data);
new_node.next = head;
head = new_node;
}
// 在链表尾部插入结点
public void appendNode(int data) {
Node new_node = new Node(data);
if (head == null) {
head = new_node;
return;
}
Node last = head;
while (last.next != null) {
last = last.next;
}
last.next = new_node;
}
// 在给定结点后插入新结点
public void insertAfter(Node prev_node, int data) {
if (prev_node == null) {
System.out.println("The given previous node cannot be null");
return;
}
Node new_node = new Node(data);
new_node.next = prev_node.next;
prev_node.next = new_node;
}
// 删除结点
public void deleteNode(int key) {
Node temp = head;
Node 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 curr_node = head;
while (curr_node != null) {
System.out.print(curr_node.data + " ");
curr_node = curr_node.next;
}
}
// 主函数
public static void main(String[] args) {
LinkedList list = new LinkedList();
list.addNode(1);
list.addNode(2);
list.addNode(3);
list.appendNode(4);
list.appendNode(5);
list.insertAfter(list.head.next, 6);
list.deleteNode(3);
list.printList();
}
}
```
上述代码中,我们定义了一个`Node`类表示链表中的结点,并在`LinkedList`类中实现了单链表的基本操作,包括在链表头部插入结点、在链表尾部插入结点、在给定结点后插入新结点、删除结点等。在`main`函数中,我们使用上述操作构建了一个单链表,并遍历链表并打印结点值。
阅读全文