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ệu và giả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
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 ...
2. 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
Chắc bạn đã nghe đến 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)
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
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 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
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 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
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.
Tóm lại bạn chỉ cần biết là có những loại cấu trúc dữ liệu phổ biến trên để tiếp tục "Goolge" tìm hiểu về chúng để làm việc tốt hơn.
> Tự học thêm về các thuật toán phổ biến với JAVA
---
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 tế + Tuyển dụng ngay!
Đc: Tầng 3, 25T2, N05, Nguyễn Thị Thập, Cầu Giấy, Hà Nội
SĐT: 02435574074 - 0968051561
Email: hello@niithanoi.edu.vn
Fanpage: https://facebook.com/NIIT.ICT/
#niit #niithanoi niiticthanoi #hoclaptrinh #khoahoclaptrinh #hoclaptrinhjava #hoclaptrinhphp #java #php #python