Read more »
Để học về ngăn xếp (stack) và hàng đợi (queue), chúng ta có thể liên hệ với một số ví dụ quen thuộc trong văn hóa Việt Nam để dễ hình dung hơn.
Ngăn xếp (Stack)
Ngăn xếp là một cấu trúc dữ liệu hoạt động theo nguyên tắc Vào sau Ra trước (LIFO - Last In, First Out). Tức là, phần tử nào được thêm vào cuối cùng sẽ là phần tử được lấy ra đầu tiên.
Các thao tác cơ bản:
- Push: Thêm một phần tử vào đỉnh của ngăn xếp.
- Pop: Xóa và trả về phần tử ở đỉnh của ngăn xếp.
- Peek/Top: Xem phần tử ở đỉnh của ngăn xếp mà không xóa nó.
- IsEmpty: Kiểm tra xem ngăn xếp có rỗng hay không.
Ví dụ trong văn hóa Việt Nam:
- Chồng bánh chưng, bánh tét ngày Tết: Khi xếp bánh chưng hoặc bánh tét vào nồi để luộc, chiếc bánh nào được đặt vào sau cùng (trên cùng) sẽ là chiếc bánh được lấy ra đầu tiên khi vớt ra.
- Xếp chén đĩa sau khi rửa: Khi rửa chén đĩa xong, bạn thường chồng chúng lên nhau. Chiếc đĩa (hoặc chén) cuối cùng được đặt lên trên cùng sẽ là chiếc đĩa bạn lấy ra đầu tiên khi sử dụng.
- Sách trên giá sách (chồng lên nhau): Nếu bạn chồng sách lên nhau, cuốn sách bạn đặt lên trên cùng (cuối cùng) sẽ là cuốn sách bạn lấy ra đọc đầu tiên.
Hàng đợi (Queue)
Hàng đợi là một cấu trúc dữ liệu hoạt động theo nguyên tắc Vào trước Ra trước (FIFO - First In, First Out). Tức là, phần tử nào được thêm vào đầu tiên sẽ là phần tử được lấy ra đầu tiên.
Các thao tác cơ bản:
- Enqueue: Thêm một phần tử vào cuối hàng đợi.
- Dequeue: Xóa và trả về phần tử ở đầu hàng đợi.
- Front/Peek: Xem phần tử ở đầu hàng đợi mà không xóa nó.
- IsEmpty: Kiểm tra xem hàng đợi có rỗng hay không.
Ví dụ trong văn hóa Việt Nam:
- Xếp hàng mua vé xe buýt, vé xem phim: Người nào đến trước sẽ được phục vụ trước và mua vé trước.
- Hàng người chờ rút tiền ATM: Người đứng đầu hàng sẽ được rút tiền trước, sau đó đến người thứ hai, v.v.
- Xếp hàng vào quầy lễ tân khách sạn: Khách hàng nào đến trước sẽ được làm thủ tục nhận phòng trước.
- Hàng xe chờ đổ xăng: Xe nào đến trước sẽ được đổ xăng trước.
Hy vọng những ví dụ này giúp bạn dễ dàng hình dung và hiểu rõ hơn về ngăn xếp và hàng đợi trong lập trình!
0 Reviews