顺序表的操作 (1) 将1-10放人顺序表中,输出顺序表的长度;输出上面顺序表中的数字 (3) 在位置3插人-30,输出顺序表中的数字;输出顺序表长度 (4) 删除顺序表中第5个数据,输出顾序表中的数字;输出顺序表长度 用java实现。
时间: 2024-09-28 14:16:48 浏览: 26
顺序表是一种线性数据结构,通常通过数组实现。以下是用Java实现上述操作的示例:
```java
import java.util.ArrayList;
class ListNode {
int data;
ListNode next;
ListNode(int value) {
data = value;
next = null;
}
}
public class SequenceList {
private ListNode head;
private int length;
// 初始化顺序表并添加元素
public void addAndDisplay(int start, int end) {
for (int i = start; i <= end; i++) {
insertAtHead(i);
}
System.out.println("顺序表的长度: " + this.length);
printList();
}
// 插入节点到头
public void insertAtHead(int value) {
if (head == null) {
head = new ListNode(value);
} else {
ListNode newNode = new ListNode(value);
newNode.next = head;
head = newNode;
}
length++;
}
// 在指定位置插入节点
public void insertAtPosition(int index, int value) {
if (index < 0 || index > length) {
throw new IndexOutOfBoundsException("插入位置超出范围");
}
if (index == 0) {
insertAtHead(value);
} else {
ListNode prevNode = findNode(index - 1);
ListNode newNode = new ListNode(value);
newNode.next = prevNode.next;
prevNode.next = newNode;
}
length++;
}
// 打印顺序表
private void printList() {
ListNode currentNode = head;
while (currentNode != null) {
System.out.print(currentNode.data + " ");
currentNode = currentNode.next;
}
System.out.println();
}
// 查找指定位置的节点
private ListNode findNode(int index) {
if (index >= 0 && index < length) {
ListNode current = head;
for (int i = 0; i < index; i++) {
current = current.next;
}
return current;
}
return null;
}
// 删除指定位置的节点并更新长度
public void deleteAtPosition(int index) {
if (index < 0 || index >= length) {
throw new IndexOutOfBoundsException("删除位置超出范围");
}
if (index == 0) {
head = head.next;
} else {
ListNode prevNode = findNode(index - 1);
prevNode.next = prevNode.next.next;
}
length--;
}
public static void main(String[] args) {
SequenceList list = new SequenceList();
list.addAndDisplay(1, 10);
list.insertAtPosition(3, -30);
list.deleteAtPosition(4);
System.out.println("顺序表中的数字: ");
list.printList();
System.out.println("顺序表的长度: " + list.length);
}
}
```
在这个例子中,我们创建了一个`SequenceList`类,包含基本的操作如添加、插入、删除以及打印顺序表。请注意,这个实现假设输入的索引都是从0开始计数的。
阅读全文