Cấu trúc dữ liệu JavaScript W3schools

const Nút = yêu cầu ('. /Nút. js');

mô-đun. xuất khẩu = lớp BinarySearchTree {

cái này. root = Nút mới (rootValue);

chèn (currentNode, newValue) {

if (currentNode === null) {

currentNode = Nút mới (giá trị mới);

} khác nếu (newValue < currentNode. giá trị) {

hiện tạiNode. leftChild = cái này. chèn (currentNode. leftChild, newValue);

hiện tạiNode. phảiChild = cái này. chèn (currentNode. rightChild, newValue);

cái này. root=Nút mới(giá trị mới);

cái này. chèn (cái này. gốc, giá trị mới);

preOrderPrint(currentNode) {

nếu (currentNode. == không) {

bảng điều khiển. log(currentNode. giá trị);

cái này. preOrderPrint(currentNode. leftChild);

cái này. preOrderPrint(currentNode. rightChild);

inOrderPrint(currentNode) {

nếu (currentNode. == không) {

cái này. inOrderPrint(currentNode. leftChild);

bảng điều khiển. log(currentNode. giá trị);

cái này. inOrderPrint(currentNode. rightChild);

postOrderPrint(currentNode) {

nếu (currentNode. == không) {

cái này. postOrderPrint(currentNode. leftChild);

cái này. postOrderPrint(currentNode. rightChild);

bảng điều khiển. log(currentNode. giá trị);

tìm kiếm(currentNode, value) {

nếu (currentNode. == không) {

nếu (giá trị == currentNode. giá trị) {

} khác nếu (giá trị < currentNode. giá trị) {

trả lại cái này. tìm kiếm (currentNode. leftChild, giá trị)

trả lại cái này. tìm kiếm (currentNode. rightChild, giá trị)

trả lại cái này. tìm kiếm (cái này. gốc, giá trị);

xóa(currentNode, value) {

if (currentNode == null) {

trong khi (currentNode && (currentNode. val. = giá trị)) {

parentNode = currentNode;

nếu (giá trị < currentNode. giá trị) {

currentNode = currentNode. leftCon;

currentNode = currentNode. ngayCon;

if (currentNode === null) {

} khác nếu (currentNode. leftChild == null && currentNode. rightChild == null) {

if(currentNode. val==cái này. nguồn gốc. giá trị){

khác nếu (currentNode. val < ParentNode. giá trị) {

cha mẹNode. leftChild = null;

cha mẹNode. rightChild = null;

} khác nếu (currentNode. rightChild == null) {

if(currentNode. val==cái này. nguồn gốc. giá trị){

cái này. root=currentNode. leftCon;

khác nếu (currentNode. tráiCon. val < ParentNode. giá trị) {

cha mẹNode. leftChild = currentNode. leftCon;

cha mẹNode. rightChild = currentNode. leftCon;

} khác nếu (currentNode. leftChild == null) {

if(currentNode. val==cái này. nguồn gốc. giá trị){

cái này. root = currentNode. ngayCon;

khác nếu (currentNode. đúngCon. val < ParentNode. giá trị) {

cha mẹNode. leftChild = currentNode. ngayCon;

cha mẹNode. rightChild = currentNode. ngayCon;

var minRight = currentNode. ngayCon;

trong khi (minRight. tráiCon. == không) {

minRight = minRight. leftCon;

cái này. xóa (cái này. gốc, tối thiểu. giá trị);

Hướng dẫn Cấu trúc dữ liệu (DS) cung cấp các khái niệm cơ bản và nâng cao về Cấu trúc dữ liệu. Hướng dẫn Cấu trúc dữ liệu của chúng tôi được thiết kế cho người mới bắt đầu và các chuyên gia

Cấu trúc dữ liệu là một cách để lưu trữ và sắp xếp dữ liệu sao cho nó có thể được sử dụng một cách hiệu quả

Hướng dẫn về Cấu trúc dữ liệu của chúng tôi bao gồm tất cả các chủ đề về Cấu trúc dữ liệu như Mảng, Con trỏ, Cấu trúc, Danh sách được liên kết, Ngăn xếp, Hàng đợi, Đồ thị, Tìm kiếm, Sắp xếp, Chương trình, v.v.

Cấu trúc dữ liệu là gì?

Tên cấu trúc dữ liệu chỉ ra rằng việc tổ chức dữ liệu trong bộ nhớ. Có nhiều cách tổ chức dữ liệu trong bộ nhớ như chúng ta đã thấy một trong các cấu trúc dữ liệu, tôi. e. , mảng trong ngôn ngữ C. Mảng là tập hợp các phần tử bộ nhớ trong đó dữ liệu được lưu trữ tuần tự,. e. , lân lượt tưng ngươi một. Nói cách khác, chúng ta có thể nói rằng mảng lưu trữ các phần tử một cách liên tục. Việc tổ chức dữ liệu này được thực hiện với sự trợ giúp của một mảng cấu trúc dữ liệu. Ngoài ra còn có các cách khác để tổ chức dữ liệu trong bộ nhớ. Hãy xem các loại cấu trúc dữ liệu khác nhau

Cấu trúc dữ liệu không phải là bất kỳ ngôn ngữ lập trình nào như C, C++, java, v.v. Nó là một tập hợp các thuật toán mà chúng ta có thể sử dụng trong bất kỳ ngôn ngữ lập trình nào để cấu trúc dữ liệu trong bộ nhớ

Để cấu trúc dữ liệu trong bộ nhớ, 'n' thuật toán đã được đề xuất và tất cả các thuật toán này được gọi là kiểu dữ liệu Trừu tượng. Các kiểu dữ liệu trừu tượng này là tập hợp các quy tắc

Cấu trúc dữ liệu JavaScript W3schools

Các loại cấu trúc dữ liệu

Có hai loại cấu trúc dữ liệu

  • Cấu trúc dữ liệu nguyên thủy
  • Cấu trúc dữ liệu không nguyên thủy

Cấu trúc dữ liệu nguyên thủy

Các cấu trúc dữ liệu nguyên thủy là các kiểu dữ liệu nguyên thủy. int, char, float, double và pointer là các cấu trúc dữ liệu nguyên thủy có thể chứa một giá trị

Cấu trúc dữ liệu không nguyên thủy

Cấu trúc dữ liệu không nguyên thủy được chia thành hai loại

  • Cấu trúc dữ liệu tuyến tính
  • Cấu trúc dữ liệu phi tuyến tính

Cấu trúc dữ liệu tuyến tính

Việc sắp xếp dữ liệu theo cách tuần tự được gọi là cấu trúc dữ liệu tuyến tính. Các cấu trúc dữ liệu được sử dụng cho mục đích này là Mảng, Danh sách được liên kết, Ngăn xếp và Hàng đợi. Trong các cấu trúc dữ liệu này, một phần tử chỉ được kết nối với một phần tử khác ở dạng tuyến tính

Khi một phần tử được kết nối với 'n' số phần tử được gọi là cấu trúc dữ liệu phi tuyến tính. Ví dụ tốt nhất là cây và đồ thị. Trong trường hợp này, các yếu tố được sắp xếp một cách ngẫu nhiên

Chúng ta sẽ thảo luận ngắn gọn về các cấu trúc dữ liệu trên trong các chủ đề sắp tới. Bây giờ, chúng ta sẽ xem các thao tác phổ biến mà chúng ta có thể thực hiện trên các cấu trúc dữ liệu này

Cấu trúc dữ liệu cũng có thể được phân loại là

  • Cấu trúc dữ liệu tĩnh. Nó là một loại cấu trúc dữ liệu trong đó kích thước được phân bổ tại thời điểm biên dịch. Do đó, kích thước tối đa được cố định
  • Cấu trúc dữ liệu động. Nó là một loại cấu trúc dữ liệu mà kích thước được phân bổ trong thời gian chạy. Do đó, kích thước tối đa là linh hoạt

Hoạt động chính

Các hoạt động chính hoặc phổ biến có thể được thực hiện trên các cấu trúc dữ liệu là

  • Đang tìm kiếm. Chúng ta có thể tìm kiếm bất kỳ phần tử nào trong cấu trúc dữ liệu
  • Sắp xếp. Chúng ta có thể sắp xếp các phần tử của cấu trúc dữ liệu theo thứ tự tăng dần hoặc giảm dần
  • Chèn. Chúng ta cũng có thể chèn phần tử mới vào cấu trúc dữ liệu
  • cập nhật. Chúng tôi cũng có thể cập nhật phần tử, tôi. e. , chúng ta có thể thay thế phần tử này bằng phần tử khác
  • xóa. Chúng ta cũng có thể thực hiện thao tác xóa để xóa phần tử khỏi cấu trúc dữ liệu

Cấu trúc dữ liệu nào?

Cấu trúc dữ liệu là một cách tổ chức dữ liệu để nó có thể được sử dụng một cách hiệu quả. Ở đây, chúng ta đã sử dụng từ một cách hiệu quả, xét về cả không gian và thời gian. Ví dụ: ngăn xếp là một ADT (Kiểu dữ liệu trừu tượng) sử dụng cấu trúc dữ liệu mảng hoặc danh sách được liên kết để triển khai. Do đó, chúng tôi kết luận rằng chúng tôi yêu cầu một số cấu trúc dữ liệu để triển khai một ADT cụ thể

Một ADT cho biết những gì sẽ được thực hiện và cấu trúc dữ liệu cho biết nó được thực hiện như thế nào. Nói cách khác, chúng ta có thể nói rằng ADT cung cấp cho chúng ta bản thiết kế trong khi cấu trúc dữ liệu cung cấp phần triển khai. Bây giờ câu hỏi đặt ra. làm cách nào để biết cấu trúc dữ liệu nào sẽ được sử dụng cho một ADT cụ thể?

Vì các cấu trúc dữ liệu khác nhau có thể được triển khai trong một ADT cụ thể, nhưng các cách triển khai khác nhau được so sánh về thời gian và không gian. Ví dụ: Stack ADT có thể được triển khai bởi cả Mảng và danh sách được liên kết. Giả sử mảng đang cung cấp hiệu quả về thời gian trong khi danh sách được liên kết đang cung cấp hiệu quả về không gian, do đó, cái phù hợp nhất với yêu cầu của người dùng hiện tại sẽ được chọn

Ưu điểm của cấu trúc dữ liệu

Sau đây là những ưu điểm của cấu trúc dữ liệu

  • Hiệu quả. Nếu việc lựa chọn cấu trúc dữ liệu để triển khai một ADT cụ thể là phù hợp, thì nó làm cho chương trình rất hiệu quả về mặt thời gian và không gian
  • khả năng tái sử dụng. Cấu trúc dữ liệu cung cấp khả năng sử dụng lại có nghĩa là nhiều chương trình máy khách có thể sử dụng cấu trúc dữ liệu
  • trừu tượng. Cấu trúc dữ liệu được chỉ định bởi ADT cũng cung cấp mức độ trừu tượng. Máy khách không thể nhìn thấy hoạt động bên trong của cấu trúc dữ liệu, vì vậy nó không phải lo lắng về phần triển khai. Khách hàng chỉ có thể nhìn thấy giao diện

Chỉ mục cấu trúc dữ liệu


Khái niệm cơ bản về DS

Mảng DS

Danh sách liên kết DS

ngăn xếp DS

hàng đợi DS

DS cây

Đồ thị DS

tìm kiếm DS

Sắp xếp DS

Câu hỏi phỏng vấn

Chương trình danh sách liên kết đơn

Chương trình danh sách liên kết kép

Chương trình danh sách liên kết vòng

Chương trình cây


Điều kiện tiên quyết

Trước khi học Cấu trúc dữ liệu, bạn phải có kiến ​​thức cơ bản về C

Khán giả

Hướng dẫn Cấu trúc dữ liệu của chúng tôi được thiết kế để giúp người mới bắt đầu và các chuyên gia

Vấn đề

Chúng tôi đảm bảo rằng bạn sẽ không tìm thấy bất kỳ vấn đề nào trong hướng dẫn Cấu trúc dữ liệu này. Nhưng nếu có bất kỳ sai lầm, xin vui lòng gửi nó trong mẫu liên hệ

Cấu trúc dữ liệu nào được sử dụng trong JavaScript?

8 Cấu trúc dữ liệu phổ biến trong JavaScript .
Cây rơm. Cấu trúc dữ liệu ngăn xếp chứa danh sách các phần tử và hoạt động theo nguyên tắc LIFO (Vào sau, ra trước). .
Xếp hàng. .
Hàng đợi ưu tiên. .
Danh sách liên kết. .
Bộ. .
Bảng băm. .

7 loại dữ liệu trong JavaScript là gì?

loại không. Loại Null có chính xác một giá trị. vô giá trị
loại không xác định. Loại Không xác định là nơi sinh sống của chính xác một giá trị. không xác định. .
kiểu Boolean. Kiểu Boolean đại diện cho một thực thể logic và có hai giá trị. đúng và sai. .
loại số. .
loại BigInt. .
loại chuỗi. .
loại biểu tượng

Bốn cấu trúc dữ liệu cơ bản trong JavaScript là gì?

Bốn loại cấu trúc dữ liệu cơ bản được JavaScript hỗ trợ là. danh sách mảng, bản đồ, bản ghi và bảng JSON .

JavaScript có tốt cho cấu trúc dữ liệu không?

Cấu trúc dữ liệu và thuật toán không dành riêng cho ngôn ngữ và do đó bạn có thể sử dụng bất kỳ ngôn ngữ nào có thể là JavaScript, C, C++, Java hoặc Python . Bạn sẽ cảm thấy thoải mái với cú pháp của ngôn ngữ và bạn đã sẵn sàng để sử dụng.