设计一个有序顺序表(元素已排序,递增或递减),实现插入、删除等操作,元素插入位置由其值决定。需要Java代码
时间: 2024-10-08 18:19:51 浏览: 54
线性表的应用-线性表教程
设计一个有序顺序表,你可以创建一个`SortedList`类,其中包含一个`ArrayList`来存储元素,并实现`Comparable`接口以便元素可以自动比较大小。这里是一个简单的实现:
```java
import java.util.ArrayList;
import java.util.List;
public class SortedList<T extends Comparable<T>> {
private List<T> list;
public SortedList() {
this.list = new ArrayList<>();
}
// 插入操作,插入到列表的适当位置
public void insert(T value) {
int index = 0; // 初始假设是最前面
for (T item : list) {
if (value.compareTo(item) >= 0) { // 如果新值大于等于当前项
break;
}
index++;
}
list.add(index, value);
}
// 删除操作,根据给定的值查找并移除第一个匹配项
public boolean remove(T value) {
return list.remove(value);
}
// 返回列表中的元素
public T get(int index) {
if (index < 0 || index >= list.size()) {
throw new IndexOutOfBoundsException();
}
return list.get(index);
}
// 获取列表长度
public int size() {
return list.size();
}
// 打印整个列表
@Override
public String toString() {
return list.toString();
}
public static void main(String[] args) {
SortedList<Integer> sortedList = new SortedList<>();
sortedList.insert(5);
sortedList.insert(3);
sortedList.insert(8);
System.out.println("After insertion: " + sortedList);
System.out.println("Removing 5...");
if (sortedList.remove(5)) {
System.out.println("After removal: " + sortedList);
} else {
System.out.println("Value not found");
}
}
}
```
阅读全文