📌  相关文章
📜  用于围绕给定值对链接列表进行分区并保持原始顺序的 Javascript 程序(1)

📅  最后修改于: 2023-12-03 15:40:53.494000             🧑  作者: Mango

JavaScript程序:用于围绕给定值对链接列表进行分区并保持原始顺序

本程序可以用于围绕给定值对链接列表进行分区,并保持原始顺序。它是用JavaScript编写的,以下是该程序的详细说明。

程序说明

该程序接受一个链接列表和一个参考值作为参数。它将链接列表分为两个部分,一部分包含小于或等于参考值的链接,另一部分包含大于参考值的链接,并保持它们在原始列表中的顺序。然后,这两个部分将被组合成一个新的链接列表,并返回。

代码片段

下面是JavaScript代码片段:

function partitionLinkedList(linkedList, referenceValue) {
    // 定义两个数组,用于暂存小于或等于参考值的链接和大于参考值的链接
    const lessOrEqual = [];
    const greater = [];

    // 循环遍历链表,并将链接添加到相应的数组中
    let currentNode = linkedList.head;
    while (currentNode) {
        if (currentNode.value <= referenceValue) {
            lessOrEqual.push(currentNode.value);
        } else {
            greater.push(currentNode.value);
        }
        currentNode = currentNode.next;
    }

    // 将两个数组组合成一个新的链接列表
    const newLinkedList = new LinkedList();
    for (let i = 0; i < lessOrEqual.length; i++) {
        newLinkedList.append(lessOrEqual[i]);
    }
    for (let i = 0; i < greater.length; i++) {
        newLinkedList.append(greater[i]);
    }

    // 返回新的链接列表
    return newLinkedList;
}
示例用法

假设我们有一个链接列表如下:

1 -> 4 -> 2 -> 7 -> 5 -> 9

我们想要围绕参考值5对它进行分区。我们可以按如下方式使用该程序:

const linkedList = new LinkedList();
linkedList.append(1);
linkedList.append(4);
linkedList.append(2);
linkedList.append(7);
linkedList.append(5);
linkedList.append(9);

const referenceValue = 5;

const partitionedList = partitionLinkedList(linkedList, referenceValue);

console.log(partitionedList); // 输出:1 -> 4 -> 2 -> 5 -> 7 -> 9
结论

通过使用该程序,我们可以在JavaScript中轻松地对链接列表进行分区,并保持原始顺序。该程序可以在具有链接列表的任何JavaScript应用程序中使用,并提供高效的分区算法。