120 次浏览
以下是 LinkedList 类的完整实现 - 示例class LinkedList { constructor() { this.head = null; this.length = 0; } insert(data, position = this.length) { let node = new this.Node(data); if (this.head === null) { this.head = node; this.length++; return this.head; } let iter = 1; let currNode = this.head; while (currNode.next != null && iter < position) { ... 阅读更多
2K+ 次浏览
在链表中删除元素非常简单。我们只需要删除我们想要删除的节点,即失去对它的引用。我们需要考虑三种情况 - 从头部删除元素:在这种情况下,我们可以简单地赋值 head = head.next。这样,我们将失去第一个元素的引用。并且我们的头部将开始指向第二个元素。从尾部删除元素:在这种情况下,我们可以简单地将倒数第二个节点的 node.next 赋值为 null,这样我们将从 ... 阅读更多
1K+ 次浏览
我们需要创建一个函数 insert(data, position),该函数在给定位置的链表中插入数据。我们将执行以下步骤 - 创建一个新节点检查列表是否为空。如果是,则将节点添加到头部并返回。如果不是,我们将使用 currElem 迭代到我们想要插入的位置。我们通过使 currElem 等于 currElem.next 来迭代链表。然后,我们将使节点指向列表中的下一个节点。这是为了跟踪列表的其余部分。最后,我们将断开从 currElem 到其余 ... 阅读更多
245 次浏览
让我们首先定义一个简单的类,其中包含一个将头部初始化为 null 的构造函数。我们还将在 LinkedList 类的原型上定义另一个结构,该结构将表示链表中的每个节点。示例class LinkedList { constructor() { this.head = null; this.length = 0; } } LinkedList.prototype.Node = class { constructor(data) { this.data = data; this.next = null; } }让我们也创建一个 display 函数,它将帮助我们查看我们的列表的外观。此函数的工作原理如下。它从头部开始。它迭代 ... 阅读更多
124 次浏览
以下是列表支持的基本操作。插入 - 在列表的开头添加一个元素。删除 - 删除列表开头的一个元素。显示 - 显示完整列表。搜索 - 使用给定的键搜索元素。删除 - 使用给定的键删除元素。
在本文中,我们将讨论 JavaScript 中各种类型的链表。链表是一种顺序数据结构,用于动态存储数据。由于此数据结构没有索引,因此可以根据需要添加和删除数据。这将减少内存存储的浪费。有各种类型的链表。它们如下 - 简单链表 - 项目导航仅向前。双向链表 - 项目可以向前和向后导航。循环链表 - 最后一个项目包含第一个元素作为下一个的链接 ... 阅读更多
220 次浏览
链表是有序的数据元素集合。在链表中,数据将以节点的形式表示。节点有两个部分,第一部分将保存元素的数据,节点的第二部分(指针)将存储下一个节点的地址。在链表中,元素以顺序方式存储。链表中的操作链表中有多个操作,包括添加节点、删除节点和搜索节点。这些将在以下场景中详细介绍。创建节点让我们看看链表的场景 ... 阅读更多
632 次浏览
在本文中,我们将讨论 JavaScript 中的链表数据结构。链表是一系列数据结构,通过链接连接在一起。链表是一系列包含项目的链接。每个链接都包含到另一个链接的连接。它是使用最广泛的数据结构之一。在创建链表时,我们将使用一些术语。节点 - 这表示链表中的每个元素。它包含 2 个部分,数据和下一个。数据包含我们打算存储的数据,而下一个包含对 ... 阅读更多
145 次浏览
以下是 PriorityQueue 类的完整实现 - 示例class PriorityQueue { constructor(maxSize) { // 如果未提供,则设置默认最大大小 if (isNaN(maxSize)) { maxSize = 10; } this.maxSize = maxSize; // 初始化一个将包含队列值的数组。 this.container = []; } // 辅助函数,在开发过程中显示所有值 display() { console.log(this.container); } // 检查队列是否为空 isEmpty() { ... 阅读更多
93 次浏览
我们可以通过将容器元素重新分配给一个空数组来清除内容。例如,clear() { this.container = []; }示例您可以使用以下方法检查此函数是否正常工作 - let q = new PriorityQueue(4); q.enqueue("Hello", 3); q.enqueue("World", 2); q.enqueue("Foo", 8); q.display(); q.clear(); q.display();输出这将给出输出 -[ { data: 'World', priority: 2 }, { data: 'Hello', priority: 3 }, { data: 'Foo', priority: 8 } ] [ ]