Các Cấu trúc Dữ liệu Array, Linked list , Stack năm 2022

Các chuyên gia lập trình thường nói nếu muốn trở thành lập trình viên giỏi cần phải nắm vững cấu trúc dữ liệugiải thuật (Thuật toán)

🤔

hmmh…

Vậy thì, tạm thời chưa nói đến “giải thuật”.

Nếu năm 2022 này mà bạn muốn nâng cấp level của mình hoặc bắt đầu học lập trình thì đây là 6 loại cấu trúc dữ liệu bạn cần phải biết.

1. Cấu trúc dữ liệu Array

Cấu trúc dữ liệu Array

Cấu trúc dữ liệu Array

Array (hay là Mảng) là loại cấu trúc dữ liệu đầu tiên bạn cần phải biết.

Đây cũng là loại cấu trúc dữ liệu bạn thường xuyên sử dụng nhất.

Chúng là các cấu trúc dữ liệu giống như danh sách cho phép bạn lưu trữ nhiều phần tử, nhiều loại trong một biến.

Các phần tử này có thể là các kiểu tham chiếu như: Đối tượng, các mảng khác, các kiểu dữ liệu nguyên thủy …

Tham khảo ngay: Mảng trong PHP
Tự học Lập trình Java để hiểu thêm về MảngHoặc Đọc bàiđể hiểu thêm về Mảng

2. Cấu trúc dữ liệu Linked list

Cấu trúc dữ liệu Linked list

Cấu trúc dữ liệu Linked list
 

Linked list là một tập hợp tuyến tính các phần tử. Mỗi phần tử trong đó sẽ chỉ đến phần tử tiếp theo.

Nó là một tập hợp các nút, trong đó chứa: Dữ liệu và một tham chiếu đến nút kế tiếp trong dãy.

Và vì Linked list không cần được lưu trữ liên tục trong bộ nhớ (Không có vị trí vật lý) nên nó có thể dễ dàng bị chèn hoặc xóa mà không cần sắp xếp lại toàn bộ cấu trúc.

Cấu trúc Linked list cũng tuân theo nguyên tắc LIFO (Last-in-first-out), có nghĩa là vào sau thì ra trước.

* Bạn hãy tưởng tượng như là ống C sủi đó. Bạn muốn lấy ra cái bên dưới thì phải lấy cái ở ngoài cùng ra trước. (Theo cách thông thường)

3. Cấu trúc dữ liệu Stack

Stack Overflow rồi nhỉ?

Dịch sát nghĩa thì có nghĩa là “Ngăn xếp tràn”. (Đúng với Logo của Stack Overflow luôn)Chắc bạn đã nghe đếnrồi nhỉ ? Dịch sát nghĩa thì có nghĩa là ” Ngăn xếp tràn “. ( Đúng với Logo của Stack Overflow luôn )

Logo Stack Overflow

Logo Stack Overflow

Trong đó, Stack chính là loại cấu trúc dữ liệu ngăn xếp.

Cấu trúc dữ liệu Stack

Cấu trúc dữ liệu Stack
 

Stack cũng tuân theo nguyên tắc LIFO.

Stack cho phép thêm và xóa liên tục một mục nhưng không may là chúng không cung cấp quyền truy cập liên tục vào mục thứ n trong ngăn xếp.

3. Cấu trúc dữ liệu Queues

Cấu trúc dữ liệu Queues

Cấu trúc dữ liệu Queues
 

Cấu trúc dữ liệu Queues là một hàng đợi.

Một hàng đợi tương tự như một Stack, nhưng sử dụng phương thức FIFO (first-in-first-out), hoặc nhập trước xuất trước.

Giống như xếp hàng check-in vậy đó, ai đến trước thì check-in trước

5. Cấu trúc dữ liệu Binary Trees

Cấu trúc dữ liệu Binary Trees

Cấu trúc dữ liệu Binary Trees
 

Binary Tress (Cây nhị phân) là một cấu trúc dữ liệu bao gồm một loạt các nút trong đó mỗi nút có thể có tối đa hai nút con, mỗi nút một giá trị.

Root là nút trên cùng trong cấu trúc Binary Tree, không có nút cha.

Binary Search Tree

Binary Search Tree

Binary Search Tree là một loại cây nhị phân khác trong đó tất cả các giá trị nút là khác nhau, mỗi nút cha có một 2 nút con, trong đó:

  • Nút con bên trái có giá trị nhỏ hơn nút cha
  • Nút con bên phải có giá trị lớn hơn nút cha

6. Cấu trúc dữ liệu Graphs

Cấu trúc dữ liệu Graphs

Cấu trúc dữ liệu Graphs

Graphs (Đồ thị) là một cấu trúc dữ liệu bao gồm các nút có các cạnh.

Nếu một biểu đồ được định hướng, điều đó có nghĩa là mỗi cạnh có một hướng được liên kết với nó (giống như đường một chiều). Ngược lại, vô hướng không có hướng cạnh liên quan.

Bạn có thể có một biểu đồ về người (màu xanh) và phim (màu đỏ) trong đó mỗi người có thể có một vài bộ phim yêu thích nhưng phim không thể không có người yêu thích.

Lời kết

Bài này thì chúng ta chỉ tìm hiểu sơ qua về 6 Loại cấu trúc dữ liệu trong lập trình. Còn chi tiết thì chúng ta sẽ tìm hiểu cụ thể trong bài viết sau.

Bạn cũng sẽ được hướng dẫn đầy đủ về các loại cấu trúc dữ liệu thường sử dụng trong các chương trình đào tạo Fulltack của NIIT - ICT Hà Nội:

Khóa học PHP Fullstack

Khóa học Java Fullstack

> Tự học thêm về các thuật toán phổ biếnTóm lại bạn chỉ cần biết là có những loại cấu trúc dữ liệu phổ cập trên để liên tục ” Goolge ” khám phá về chúng để thao tác tốt hơn .

HỌC VIỆN ĐÀO TẠO CNTT NIIT – ICT HÀ NỘI

Học Lập trình chất lượng cao ( Since 2002 ). Học thực tiễn + Tuyển dụng ngay !

Đc : Tầng 3, 25T2, N05, Nguyễn Thị Thập, CG cầu giấy, Thành Phố Hà Nội

SĐT : 02435574074 – 0968051561

E-Mail : [email protected]

Fanpage: https://facebook.com/NIIT.ICT/

# niit # niithanoi niiticthanoi # hoclaptrinh # khoahoclaptrinh # hoclaptrinhjava # hoclaptrinhphp # java # php # python