Java单链表的实现 第一类型:完成单链表类的构造方法、插入方法、遍历方法,并提供测试类进行方法测试; 第二类型:完成第一类型的基础上,完成单链表删除方法、判空方法、查找方法等,并提供测试类进行方法测试;
时间: 2024-09-26 12:15:08 浏览: 36
类型一:Java单链表的基本实现可以参考以下结构:
```java
// 定义节点类 Node
public class Node {
int data;
Node next;
public Node(int data) {
this.data = data;
this.next = null; // 初始化下一个节点为null
}
}
// 单链表类 LinkedList
public class LinkedList {
private Node head;
// 构造方法
public LinkedList() {
head = null;
}
// 插入方法 - 在链表尾部插入数据
public void insert(int data) {
if (head == null) {
head = new Node(data);
} else {
Node current = head;
while (current.next != null) {
current = current.next;
}
current.next = new Node(data);
}
}
// 遍历方法 - 输出链表所有元素
public void traverse() {
Node temp = head;
while (temp != null) {
System.out.print(temp.data + " -> ");
temp = temp.next;
}
System.out.println("null");
}
}
// 测试类 TestLinkedList
public class TestLinkedList {
public static void main(String[] args) {
LinkedList list = new LinkedList();
list.insert(1);
list.insert(2);
list.insert(3);
list.traverse(); // 输出:1 -> 2 -> 3 -> null
}
}
```
类型二:在类型一的基础上添加更多功能:
```java
// 更新版本的LinkedList类
public class LinkedList {
// ...(上面的构造方法、insert和traverse方法)
// 删除方法 - 删除指定值的第一个匹配项
public void delete(int data) {
if (head == null || head.data == data) {
head = head.next;
} else {
Node current = head;
while (current.next != null && current.next.data != data) {
current = current.next;
}
if (current.next != null) {
current.next = current.next.next;
}
}
}
// 判空方法 - 检查链表是否为空
public boolean isEmpty() {
return head == null;
}
// 查找方法 - 查找指定值的位置(返回索引,如果不存在则返回-1)
public int search(int data) {
Node current = head;
int index = 0;
while (current != null) {
if (current.data == data) {
return index;
}
current = current.next;
index++;
}
return -1;
}
}
// 更新TestLinkedList 类以测试新方法
public class TestLinkedList {
public static void main(String[] args) {
LinkedList list = new LinkedList();
list.insert(1);
list.insert(2);
list.insert(3);
list.traverse(); // 输出:1 -> 2 -> 3 -> null
list.delete(2); // 删除2
list.traverse(); // 输出:1 -> 3 -> null
System.out.println(list.isEmpty()); // 输出:false
System.out.println(list.search(1)); // 输出:0
System.out.println(list.search(4)); // 输出:-1
}
}
```
阅读全文