线性表的顺序存储结构的java代码
时间: 2024-06-15 18:02:47 浏览: 155
线性表的顺序存储结构可以使用数组来实现。以下是一个简单的线性表顺序存储结构的Java代码示例:
```java
public class ArrayList {
private int[] data; // 存储数据的数组
private int size; // 线性表的大小
// 构造函数,初始化线性表
public ArrayList(int capacity) {
data = new int[capacity];
size = 0;
}
// 获取线性表的大小
public int getSize() {
return size;
}
// 判断线性表是否为空
public boolean isEmpty() {
return size == 0;
}
// 在指定位置插入元素
public void insert(int index, int element) {
if (index < 0 || index > size) {
throw new IndexOutOfBoundsException("Index out of range!");
}
if (size == data.length) {
resize(2 * data.length); // 如果数组已满,则扩容
}
for (int i = size - 1; i >= index; i--) {
data[i + 1] = data[i]; // 将index及其后面的元素后移一位
}
data[index] = element; // 在index位置插入元素
size++;
}
// 删除指定位置的元素
public void delete(int index) {
if (index < 0 || index >= size) {
throw new IndexOutOfBoundsException("Index out of range!");
}
for (int i = index + 1; i < size; i++) {
data[i - 1] = data[i]; // 将index后面的元素前移一位
}
size--;
if (size <= data.length / 4 && data.length / 2 != 0) {
resize(data.length / 2); // 如果数组元素个数过少,则缩容
}
}
// 获取指定位置的元素
public int get(int index) {
if (index < 0 || index >= size) {
throw new IndexOutOfBoundsException("Index out of range!");
}
return data[index];
}
// 修改指定位置的元素
public void set(int index, int element) {
if (index < 0 || index >= size) {
throw new IndexOutOfBoundsException("Index out of range!");
}
data[index] = element; }
// 扩容或缩容数组
private void resize(int capacity) {
int[] newData = new int[capacity];
for (int i = 0; i < size; i++) {
newData[i] = data[i];
}
data = newData;
}
}
```
阅读全文