设计一个静态数组存储结构的顺序表类,要求编程实现如下任务:建立一个线性表,首先依次输人数据元素1,2,3,…,10,然后删除数据元素6,最后依次显示当前线性表中的数据元素。要求采用顺序表实现,假设该顺序表的数据元素个数在最坏情况下不会超过10个。
时间: 2024-09-29 17:07:16 浏览: 42
线性表的存储结构与顺序表的存储实现共4页.pdf.zip
设计一个基于顺序表的线性表类(我们姑且命名为`SequentialList`),可以按照以下步骤进行:
```java
public class SequentialList {
private int[] data; // 存储数据的数组
private int size; // 当前大小
public SequentialList() {
this.data = new int[10]; // 初始化数组,最大容量为10
this.size = 0;
}
// 添加数据元素
public void insert(int value) {
if (size == data.length) { // 如果已满,需要扩大数组
resize(data.length * 2);
}
data[size++] = value;
}
// 删除指定位置的数据元素
public void delete(int index) {
if (index < 0 || index >= size) { // 确保索引有效
throw new IndexOutOfBoundsException("Invalid index");
}
for (int i = index; i < size - 1; i++) {
data[i] = data[i + 1];
}
size--;
}
// 扩大数组容量
private void resize(int newSize) {
int[] newData = new int[newSize];
System.arraycopy(data, 0, newData, 0, size);
data = newData;
}
// 显示当前线性表中的数据元素
public void display() {
for (int i = 0; i < size; i++) {
System.out.println("Element at index " + i + ": " + data[i]);
}
}
// 主函数示例
public static void main(String[] args) {
SequentialList list = new SequentialList();
list.insert(1); list.insert(2); list.insert(3);
// ... (依次插入直到10)
list.delete(5); // 删除6
list.display(); // 输出剩余元素
}
}
```
在这个实现中,`insert()`方法用于添加数据,`delete()`方法用于删除指定索引处的数据,并通过`resize()`方法动态调整数组容量以避免频繁扩容。`display()`方法则用于打印当前列表的所有元素。
阅读全文