溫馨提示×

如何在java中使用有序鏈表

小樊
82
2024-09-14 06:59:52
欄目: 編程語言

在Java中,您可以使用LinkedList類來實現有序鏈表

import java.util.LinkedList;

public class OrderedLinkedList {
    public static void main(String[] args) {
        // 創(chuàng)建一個空的 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);
            }
        }
    }
}

這個示例中,我們首先創(chuàng)建了一個空的LinkedList。然后,我們通過調用addInOrder()方法將元素按順序添加到鏈表中。最后,我們打印出有序鏈表。

addInOrder()方法會檢查鏈表是否為空,或者新元素是否應該添加到鏈表的開頭。接下來,它遍歷鏈表,找到新元素應該插入的位置。如果沒有找到合適的插入位置,說明新元素應該添加到鏈表末尾。

0