Hướng dẫn nodejs fifo queue - hàng đợi nodejs XVo

Hướng dẫn nodejs fifo queue - hàng đợi nodejs XVo

Cấu trúc dữ liệu hàng đợi

Sự mô tả

Đây là việc triển khai JavaScript của cấu trúc dữ liệu hàng đợi.

Một cấu trúc dữ liệu hàng đợi mô hình hóa khái niệm 'đầu tiên ở đầu tiên', hoặc hình ảnh FIFO của dòng tại cửa hàng tạp hóa. Mục đầu tiên được xóa khỏi hàng đợi là mục đầu tiên được đặt trong hàng đợi. Về cơ bản, thứ tự các mục được đặt trong các vấn đề hàng đợi.

Việc triển khai cụ thể này sử dụng một danh sách được liên kết làm cấu trúc dữ liệu cơ bản. Điều này cung cấp một số lợi ích.

  • Chúng tôi có thể tận dụng công việc đã được thực hiện để thực hiện danh sách được liên kết.

  • Điều này cho vay đến một mức độ thành phần và sự trừu tượng hóa giúp đơn giản hóa rất nhiều việc thực hiện này. Nó cung cấp một trình bao bọc xung quanh các phương thức của danh sách được liên kết mà chúng ta cần xây dựng các thuộc tính của cấu trúc dữ liệu hàng đợi.

  • Các hoạt động 'hàng đợi' hoặc 'dequeue' có thể được hoàn thành trong thời gian O (1).

  • Không có chi phí bổ sung nào được yêu cầu để 'thay đổi kích thước' cấu trúc dữ liệu để thêm nhiều phần tử vào hàng đợi. Khi các phần tử được 'xếp hàng' trong hàng đợi, danh sách được liên kết cơ bản sẽ điều chỉnh kích thước của nó một cách linh hoạt.

Để biết các ví dụ và tài liệu cụ thể, hãy xem các phần dưới đây

Motivation:

Mục đích chính của dự án này là xem xét lại những điều cơ bản và tập trung vào quá trình phát triển.

Tôi đã thừa nhận toàn bộ rằng không gian cấu trúc dữ liệu cơ bản được tạo ra với mã được viết tốt và triển khai hiệu quả và người ta có thể dễ dàng lấy một trong những thư viện đó và tích hợp nó trong dự án của họ. Tuy nhiên, sự khác biệt chính giữa các thư viện/triển khai đó và đây là đây là triển khai tốt nhất tôi từng viết. Hy vọng của tôi là một người khác sẽ thấy điều này hữu ích, nhưng hiểu, mã này không phải là mục tiêu; Đây chỉ đơn giản là một sản phẩm sinh học hữu ích của cuộc hành trình. Động lực cơ bản là để hiểu và quan trọng hơn là học hỏi từ quá trình để đến trạng thái kết thúc mong muốn đối với tôi, đó là tất cả về niềm vui của cuộc hành trình.

Environment:

Mặc dù việc triển khai này được thiết kế để sử dụng với Node.js, nhưng nó có thể được sử dụng trong các bối cảnh khác với các sửa đổi nhỏ. Việc triển khai này không có bất kỳ sự phụ thuộc bên ngoài nào sẽ ngăn cản nó được sử dụng trong trình duyệt-chỉ bao gồm nó với thẻ


Cách sử dụng cơ bản

Cài đặt với NPM:

npm install queue-fifo --save

Cài đặt bằng sợi:

Ví dụ sử dụng cơ bản dưới đây. Lưu ý: Nó không bao gồm tất cả các phương pháp có sẵn, thay vào đó chỉ làm nổi bật chức năng chính để đứng dậy và chạy với cấu trúc dữ liệu này. Để biết mô tả tất cả các phương thức, xem phần API.

var Queue = require('queue-fifo');

var queue = new Queue();

queue.isEmpty();

queue.enqueue('data item 1');

queue.enqueue('data item 2');

queue.enqueue('data item 3');

queue.enqueue('data item 4');

queue.isEmpty();

queue.size();

queue.dequeue();

queue.peek()

queue.size();

queue.clear();

queue.isEmpty();

Định nghĩa TypeScript cũng được cung cấp:

import Queue = require('queue-fifo');

let stringQueue = new Queue<string>();

let numberQueue = new Queue<number>();

API

Các phương thức có sẵn cho một ví dụ hàng đợi:

  • ### isempty () xác định xem hàng đợi có trống hay không. Trả về đúng nếu trống, sai nếu không.

  • ### Size () Trả về kích thước của hàng đợi hoặc số lượng vật phẩm

  • ### Clear () Xóa hàng đợi của tất cả dữ liệu

  • ### Enqueue (dữ liệu) Thêm một mục mới chứa 'dữ liệu' vào mặt sau của hàng đợi

  • ### dequeue () loại bỏ mục khỏi phía trước hàng đợi

  • ### peek () trả về dữ liệu của mục ở phía trước hàng đợi, nhưng không xóa nó


Giấy phép

MIT © Jason Jones