在Java中,您可以使用LinkedList
類來實現有序鏈表
import java.util.LinkedList;
public class OrderedLinkedList {
public static void main(String[] args) {
// 創建一個空的 LinkedList
LinkedList<Integer> list = new LinkedList<>();
// 添加元素到有序鏈表
addInOrder(list, 5);
addInOrder(list, 3);
addInOrder(list, 7);
addInOrder(list, 1);
// 輸出有序鏈表
System.out.println("Ordered LinkedList: " + list);
}
/**
* 將指定元素添加到有序鏈表中
* @param list 有序鏈表
* @param value 要添加的值
*/
public static void addInOrder(LinkedList<Integer> list, int value) {
// 如果鏈表為空或新元素<=第一個元素,則將新元素添加到鏈表開頭
if (list.isEmpty() || value <= list.getFirst()) {
list.addFirst(value);
} else {
// 從頭遍歷鏈表,找到新元素應該插入的位置
for (int i = 0; i< list.size() - 1; i++) {
if (value > list.get(i) && value <= list.get(i + 1)) {
list.add(i + 1, value);
break;
}
}
// 如果沒有找到合適的插入位置,說明新元素應該添加到鏈表末尾
if (!list.contains(value)) {
list.addLast(value);
}
}
}
}
這個示例中,我們首先創建了一個空的LinkedList
。然后,我們通過調用addInOrder()
方法將元素按順序添加到鏈表中。最后,我們打印出有序鏈表。
addInOrder()
方法會檢查鏈表是否為空,或者新元素是否應該添加到鏈表的開頭。接下來,它遍歷鏈表,找到新元素應該插入的位置。如果沒有找到合適的插入位置,說明新元素應該添加到鏈表末尾。