HomeLập trìnhJavaScriptJavaScript 实现一个链表

JavaScript 实现一个链表


在 在 在 在 , , , , , , , , 了解 了解 了解 了解 了解 了解 了解 或者 或者 或者 或者 或者Bạn có thể sử dụng JavaScript để phát triển JavaScript ,那么我推荐你阅读本文。

Bạn có thể sử dụng JavaScript để hỗ trợ JavaScript không?

什么是链表

链表格 , , , , , , , 的 的 元素 指针 指针 指针 指针 指针 指针 指针 指针 指针 指针 指针 列表 列表 列表 指针 指针 指针中的下一个对象。

每 个 元素 节点 包含 两 个 的 数据 数据 和 一 一 个 个 节点 , , , , , ,

Hình ảnh danh sách liên kết
Hình ảnh danh sách liên kết

我们 通常 使用 使用 使用 作为 作为 , , , 这个 这个 这个 这个 是 是 对 链表 中 中 个 个 , , , , 链表 的 最后

Đối với JavaScript 中,链表长这样:

const list = {
    head: {
        value: 6
        next: {
            value: 10                                             
            next: {
                value: 12
                next: {
                    value: 3
                    next: null    
                    }
                }
            }
        }
    }
};

链表的优点

可以很容易地从链表中删除或添加节点,而无需重组整个数据结构。这是它相对于数组的一一伂

链表的缺点

  • 链表的搜索操作很慢,与数组不同,不允许随机访问数据元素,必须从第一个节点开始按顺顺麏肹
  • 由于需要储存指针,相较于数组需要更多内存。

链表的类型

链表有以下三种类型:

  • 单向链表: Tôi có thể làm điều đó với mọi người không?
  • 双向链表:每个节点包含两个指针,一个指向下一个节点,另一个指向前一个节点。
  • 循形链表: 循环 是 的 , , 的 最后 节点 指向 第一 或 或 或 之前 之前 的 任何 其他 其他 其他 , , , , , ,

JavaScript 实现一个表节点

前面我们讲到,列表节点包含两项: JavaScript 实现如点的指针。我们可以用 JavaScript 实现如下技痺皹:

class ListNode {
    constructor(data) {
        this.data = data
        this.next = null                
    }
}

JavaScript 实现一个链表

Người đứng đầu:

class LinkedList {
    constructor(head = null) {
        this.head = head
    }
}

将它们合在一起

让我们用刚刚创建的类创建一个链表。 首先,我们创建两个表节点,nút1nút2,以及他们之间的指针:

let node1 = new ListNode(2)
let node2 = new ListNode(5)
node1.next = node2

接着,我们使用 nút1 创建一个链表:

let list = new LinkedList(node1)        

让我们尝试访问刚刚创建的列表中的节点:

console.log(list.head.next.data) //returns 5    

一些链表方法:

接下来,我们将为链表实现四个 người trợ giúp 方法:

  1. kích thước()
  2. xa lạ()
  3. getList()
  4. getFirst()
Đọc thêm  Đa luồng, SQLite, Mô-đun gốc và các điểm đau phổ biến khác

1. kích thước()

该方法返回链表中存在的节点数:

size() {
    let count = 0; 
    let node = this.head;
    while (node) {
        count++;
        node = node.next
    }
    return count;
}

2. xóa()

该方法清空链表:

clear() {
    this.head = null
}

3. danh sách nhận ()

该方法返回链表的最后一个节点:

getLast() {
    let lastNode = this.head;
    if (lastNode) {
        while (lastNode.next) {
            lastNode = lastNode.next
        }
    }
    return lastNode
}

4. getFirst()

该方法返回链表第一个节点:

getFirst() {
    return this.head;
}

Nguồn: Cách triển khai danh sách liên kết trong JavaScript,作者: Sarah Chima Atuonwu



Zik.vn – Biên dịch & Biên soạn Lại

spot_img

Create a website from scratch

Just drag and drop elements in a page to get started with Newspaper Theme.

Buy Now ⟶

Bài viết liên quang

DMCA.com Protection Status