Java设计一个链表类,类成员函数包括建表,插入,删除,取数据元素,求数据个数,是否空,并设计一个测试主函数验证类成员函数正确性
时间: 2024-10-28 13:11:04 浏览: 9
在Java中,我们可以创建一个简单的单向链表类`LinkedList`,包含一些基本操作如添加、删除节点、获取元素、检查链表是否为空以及计算长度。这里是一个基础的实现:
```java
public class LinkedList<T> {
private Node<T> head; // 链表头结点
private int size; // 链表大小
// 构造函数,初始化链表为空
public LinkedList() {
head = null;
size = 0;
}
// 插入元素到链表尾部
public void add(T data) {
if (head == null) {
head = new Node<>(data);
} else {
Node<T> temp = head;
while (temp.next != null) {
temp = temp.next;
}
temp.next = new Node<>(data);
}
size++;
}
// 删除指定位置的元素,如果不存在则抛出异常
public void remove(int index) throws IndexOutOfBoundsException {
if (index < 0 || index >= size) {
throw new IndexOutOfBoundsException("Index out of bounds");
}
if (index == 0) {
head = head.next;
} else {
Node<T> current = head;
for (int i = 0; i < index - 1; i++) {
current = current.next;
}
current.next = current.next.next;
}
size--;
}
// 获取指定索引的数据元素,如果不存在则返回null
public T get(int index) {
if (index < 0 || index >= size) {
return null;
}
Node<T> temp = head;
for (int i = 0; i < index; i++) {
temp = temp.next;
}
return temp.data;
}
// 检查链表是否为空
public boolean isEmpty() {
return head == null;
}
// 计算链表中的元素个数
public int getSize() {
return size;
}
// 测试主函数
public static void main(String[] args) {
LinkedList<String> list = new LinkedList<>();
try {
list.add("A");
list.add("B");
list.add("C");
System.out.println("List size: " + list.getSize());
System.out.println("Element at index 0: " + list.get(0));
list.remove(1);
System.out.println("After removing B: " + list.isEmpty() ? "Empty" : "Not empty");
} catch (Exception e) {
System.out.println("Error: " + e.getMessage());
}
}
// Inner node class for the linked list
private static class Node<T> {
T data;
Node<T> next;
Node(T data) {
this.data = data;
this.next = null;
}
}
}
```
在这个例子中,我们首先定义了一个泛型`LinkedList`类,然后实现了添加、删除、获取元素等操作。主函数`main()`用于创建链表并测试其功能。
阅读全文