Sharecs.net
  • Trang chủ
  • Thủ Thuật
    • Thủ thuật máy tính
      • Windows
      • MacOS
      • Linux
    • Thủ thuật internet
    • Thủ thuật phần mềm
  • Phần Mềm
  • Lỗi máy tính
    • Lỗi internet
    • Lỗi windows
    • Lỗi phần mềm
  • Lập Trình
    • Lập Trình Java
    • Lập trình Python
    • Lập Trình React Native
    • Code Hay
  • Linh Tinh
    • PhotoShop
    • Tải Video Wallpaper
    • Kho Tools
      • Cân Bằng Phương Trình Hóa Học
      • Custom Css Scrollbar – Render Code
      • Tạo Kí Tự Đặc Biệt Online
      • Tạo Deep Link
    • Tài Liệu – Luận Văn – Báo Cáo
    • Kho Theme Website WordPress
No Result
View All Result
  • Trang chủ
  • Thủ Thuật
    • Thủ thuật máy tính
      • Windows
      • MacOS
      • Linux
    • Thủ thuật internet
    • Thủ thuật phần mềm
  • Phần Mềm
  • Lỗi máy tính
    • Lỗi internet
    • Lỗi windows
    • Lỗi phần mềm
  • Lập Trình
    • Lập Trình Java
    • Lập trình Python
    • Lập Trình React Native
    • Code Hay
  • Linh Tinh
    • PhotoShop
    • Tải Video Wallpaper
    • Kho Tools
      • Cân Bằng Phương Trình Hóa Học
      • Custom Css Scrollbar – Render Code
      • Tạo Kí Tự Đặc Biệt Online
      • Tạo Deep Link
    • Tài Liệu – Luận Văn – Báo Cáo
    • Kho Theme Website WordPress
No Result
View All Result
Sharecs.net
No Result
View All Result
Home Lập Trình

7 Cấu Trúc Dữ Liệu Quan Trọng Mà Lập Trình Viên Không Thể Bỏ Qua

Nguyễn Tuấn by Nguyễn Tuấn
01/12/2022
0
0
SHARES
12
VIEWS

Cấu trúc dữ liệu là gì? Chúng ta hiểu đơn giản cấu trúc dữ liệu là cách để tổ chức và lưu trữ dữ liệu trong máy tính. Hầu hết mọi phần mềm, chương trình đều sử dụng cấu trúc dữ liêu. Dưới đây mình sẽ giới thiệu 1 số cấu trúc dữ liệu thường gặp khi chúng ta làm việc:

Mục Lục

  • 1 Arrays
  • 2 Linked Lists
  • 3 Stacks
  • 4 Queue
  • 5 Tree
  • 6 Graph
  • 7 Hash table

Arrays

ARRAY – mảng là một cấu trúc có kích thước cố định, có thể trữ item có cùng kiểu dữ liệu (một mảng số nguyên, số thực, string hay thậm chí một mảng của các mảng). Mảng được dánh chỉ mục, cho phép truy cập ngẫu nhiên vào mảng.

Cấu trúc dữ liệu mảng Arrays
Mảng – Arrays

Phần tử: Mỗi mục được lưu giữ trong một mảng được gọi là một phần tử.

Chỉ mục (Index): Mỗi vị trí của một phần tử trong một mảng có một chỉ mục số được sử dụng để nhận diện phần tử.

Linked Lists

LINKED LIST – danh sách liên kết là một cấu trúc tuần tự bao gồm một chuỗi các item theo thứ tự tuyến tính được liên kết với nhau và khôn thể thực hiện truy cập ngẫu nhiên.

  1. Các phẩn tử trong linked list được gọi là node
  2. Mỗi node chứa một key và một con trỏ trỏ tới node kế tiếp của nó, được gọi là next
  3. Thuộc tính tên là head, trỏ tới phần tử đầu tiên của linked list
  4. Phần tử cuối của linked list có tên là tail
Linked Lists la gi
Cấu trúc dữ liệu Linked Lists

Stacks

STACK – ngăn xếp là một cấu trúc dạng LIFO (Last In First Out – phẩn tử được đưa vào sau cùng, có thể được truy cập đầu tiên) được thấy thường xuyên trong nhiều ngô ngữ lập trình. Có thể thực hiện 2 hoạt động cơ bản trên một stack:

  1. Push: thêm một phần tử vào đỉnh của stack
  2. Pop: Xóa một phần tử khỏi top của stack
  3. Peek: Trả về phần tử ở đỉnh của stack mà không xoá nó đi ( hàm bổ sung )
  4. isEmpty: Kiểm tra một stack có rỗng không ( hàm bổ sung )
  5. isFull: Kiểm tra một stack có đang đầy không ( hàm bổ sung )

Ứng dụng để: Sử dụng cho tính toán giá trị biểu thức, Sử dụng cho cài đặt lời gọi hàm trong lập trình đệ quy.

Stacks la gi

Queue

QUEUE – hàng đợi là cấu trúc dạng FIFO (First In First Out – phần tử được đặt ở đầu sẽ được truy cập đầu tiên). Có 2 hoạt động cơ bản đươc thực hiện trên 1 queue:

  1. Enqueue: thêm một phẩn tử vào phía cuối queue
  2. Dequeue: xóa một phần tử ở phía đầu queue
Cau truc du lieu queue

Tree

TREE – cây là một cấu trúc dữ liệu có phân cấp, trong đó dữ liệu được tổ chức theo thứ bậc và liên kết với nhau khi lưu trữ. Có nhiều kiểu tree đã được phát triển để phù hợp với các ứng dụng khác nhau hoặc khắc phục những hạn chế nhất định, có thể kể đến như: cây tìm kiếm nhị phân, B-tree, Treap, Red-Black Tree, Splay Tree…

Graph

GRAPH – đồ thị là một tập hợp hữu hạn các đỉnh và đường đi giữa các đỉnh này. Kích thước của một đồ thị được tính bằng số lượng, bậc của đồ thị được tính bằng số đỉnh của nó. 2 đỉnh được gọi là liền kề nếu chúng được nối với nhau bằng cùng 1 đường. Có 2 loại đồ thị:

  1. Đồ thị có hướng: Tất cả đường đi trên nó đều được đánh dấu chiều giữa điểm đầu và điểm cuối.
  2. Đồ thị vô hướng: Tất cả đường đi trên nó đều không quy định chiều.
Graph do thi co huong do thi vo huong

Hash table

HASH TABLE – bản băm là cấu trúc dữ liệu lưu trữ các giá trị mà mỗi giá trị có một key được liên kết với nó. Hash Table hỗ trợ tìm kiếm hiệu quả nếu ta biết được key của giá trị cần tìm.

Do đó, nó hiệu quả trong việc thêm, tìm kiếm dữ liệu bất kể kích thước dữ liệu như thế nào. Hash Table sử dụng Array – mảng như là một kho lưu giữ trung gian và sử dụng kỹ thuật Hash để tạo key tại nơi giá trị được chèn vào.

Ứng dụng:

  • Sử dụng để cài đặt việc đánh index trong database.
  • Sử dụng để cài đặt các mảng liên kết.
  • Sử dụng để cài đặt kiểu cấu trúc dữ liệu Set.

Hash function (h) là một hàm đặc biệt sử dụng để giải quyết vấn đề của cách tiếp cận đánh địa chỉ trực tiếp. Với cách truy cập trực tiếp, khi đó một giá trị với key k sẽ được lưu trữ trong slot k. Sử dụng hàm băm, ta sẽ tính toán index của slot mà value được lưu trữ. Giá trị được tính toán bằng hàm băm của một key được gọi là hash value, cho biết index của slot mà giá trị được ánh xạ tới.

h(k) = k % m

  • h: hàm băm
  • k: key của hash value cần xác định
  • m: size của hash table
Hash table la gi

Trên đây là bài viết ngắn gọn mình tổng hợp giới thiệu về các cấu trúc dữ liệu thường gặp trong quá trình làm việc. Hi vọng bài viết sẽ có thể mang lại cho bạn một chút kiến thức bổ ích.

Cảm ơn các bạn đã ghé thăm. Chúc các bạn thành công!

Đánh giá bài viết giúp mình nhé!
ShareSendTweetShare

Cùng chuyên mục

Annotations @Controller and @RestController Trong Spring

Annotations @Controller and @RestController Trong Spring

05/02/2023
9
Sự Cố Năm 2038 – Lỗi Đồng Hồ Trên Máy Tính

Sự Cố Năm 2038 – Lỗi Đồng Hồ Trên Máy Tính

05/02/2023
13
5 cách mà máy ảnh sẽ phát triển vào năm 2023 – Tốt và Xấu

5 cách mà máy ảnh sẽ phát triển vào năm 2023 – Tốt và Xấu

22/01/2023
9
Tòa án Ấn Độ bác bỏ yêu cầu của Google để chặn phán quyết chống độc quyền Android

Tòa án Ấn Độ bác bỏ yêu cầu của Google để chặn phán quyết chống độc quyền Android

21/01/2023
4
Subscribe
Notify of
guest

guest

0 Comments
Inline Feedbacks
View all comments

Tài nguyên

Cân bằng phương trình phản ứng hóa

Tạo deep link

Custom Css Scrollbar – Render Code

Bài Viết Nổi Bật

  • Bài Tập Code Python Đơn Giản Có Lời Giải – Phần 1

    Bài Tập Code Python Đơn Giản Có Lời Giải – Phần 1

    1 shares
    Share 0 Tweet 0
  • Hatsune Miku Anime Wallpaper Video 4k

    0 shares
    Share 0 Tweet 0
  • Thư viện đồ họa trong Python – Vẽ doraemon

    0 shares
    Share 0 Tweet 0
  • Download Video Wallpaper Agatsuma Zenitsu – Anime Kimetsu No Yaiba

    45 shares
    Share 0 Tweet 0
  • 14 Code Notepad Troll Hack Máy Tính

    0 shares
    Share 0 Tweet 0
  • Trending
  • Comments
  • Latest
Hatsune Miku Anime Wallpaper Video 4k

Hatsune Miku Anime Wallpaper Video 4k

30/01/2023
Bài Tập Code Python Đơn Giản Có Lời Giải – Phần 1

Bài Tập Code Python Đơn Giản Có Lời Giải – Phần 1

31/08/2020
Download Video Wallpaper Agatsuma Zenitsu – Anime Kimetsu No Yaiba

Download Video Wallpaper Agatsuma Zenitsu – Anime Kimetsu No Yaiba

16/12/2022
Bài Tập Code Python Đơn Giản Có Lời Giải – Phần 1

Thư viện đồ họa trong Python – Vẽ doraemon

09/12/2020
Cách Kích Hoạt Key Win 11 Bản Quyền –Active Win 11 – Win 10 Free

Cách Kích Hoạt Key Win 11 Bản Quyền –Active Win 11 – Win 10 Free

1
Annotations @Controller and @RestController Trong Spring

Annotations @Controller and @RestController Trong Spring

05/02/2023
Sự Cố Năm 2038 – Lỗi Đồng Hồ Trên Máy Tính

Sự Cố Năm 2038 – Lỗi Đồng Hồ Trên Máy Tính

05/02/2023
5 cách mà máy ảnh sẽ phát triển vào năm 2023 – Tốt và Xấu

5 cách mà máy ảnh sẽ phát triển vào năm 2023 – Tốt và Xấu

22/01/2023
Tòa án Ấn Độ bác bỏ yêu cầu của Google để chặn phán quyết chống độc quyền Android

Tòa án Ấn Độ bác bỏ yêu cầu của Google để chặn phán quyết chống độc quyền Android

21/01/2023

Phản hồi gần đây

  • Crom trong Cách Kích Hoạt Key Win 11 Bản Quyền –Active Win 11 – Win 10 Free
  • ngu trong Anime Wallpaper Video 4k – Anime Kanao Tsuyuri Kimetsu no Yaiba
  • thiem trong Share Phôi Chứng Minh Nhân Dân PSD
  • Nguyễn Tuấn trong Ứng Dụng Thuật Toán Hồi Quy Tuyến Tính Để Chẩn Đoán Xơ Vữa Động Mạch 2021

Donate

Mời Share’cs ly Cafe 

Liên hệ quảng cáo

Email: Sharecs.net@gmail.com

Hợp tác nội dung: Sharecs rất vinh dự được mời các bạn đóng góp những sản phẩm thiết kế, thủ thuật hay những chia sẻ hữu ích… để cùng chia sẻ rộng rãi tới mọi người!

Giới Thiệu

Sharecs.net là một website/blog cá nhân, chuyên chia sẻ những kiến thức xoay quanh công nghệ như máy tính, internet, phần mềm, lập trình,... Mình hi vọng, Sharecs sẽ mang lại những kiến thức mà bạn chưa từng được học trên ghế nhà trường!

  • Giới Thiệu & Liên Hệ
  • Chính Sách Bảo Mật

CopyRight By Sharecs.net DMCA.com Protection Status

No Result
View All Result
  • Trang chủ
  • Thủ Thuật
    • Thủ thuật máy tính
      • Windows
      • MacOS
      • Linux
    • Thủ thuật internet
    • Thủ thuật phần mềm
  • Phần Mềm
  • Lỗi máy tính
    • Lỗi internet
    • Lỗi windows
    • Lỗi phần mềm
  • Lập Trình
    • Lập Trình Java
    • Lập trình Python
    • Lập Trình React Native
    • Code Hay
  • Linh Tinh
    • PhotoShop
    • Tải Video Wallpaper
    • Kho Tools
      • Cân Bằng Phương Trình Hóa Học
      • Custom Css Scrollbar – Render Code
      • Tạo Kí Tự Đặc Biệt Online
      • Tạo Deep Link
    • Tài Liệu – Luận Văn – Báo Cáo
    • Kho Theme Website WordPress

CopyRight By Sharecs.net DMCA.com Protection Status