Stack
Stack, được hiểu theo nghĩa Tiếng Việt là ngăn xếp, xếp chồng. Đây là cấu trúc dữ liệu hoạt động theo nguyên tắc: vào sau ra trước (Last in first out – LIFO). Để trực quan, các bạn có thể hiểu nó là một chồng bát, bạn chồng các chiếc bát lên cao thì chiếc bạn chồng vào sau cùng sẽ là chiếc bạn lấy ra đầu tiên và ngược lại, chiếc bát đầu tiên, ở dưới cùng sẽ là chiếc bạn lấy ra sau cùng. Các thao tác với cấu trúc dữ liệu kiểu stack là:
- push: thêm bản ghi, tương tự với việc bạn thêm một chiếc bát vào chồng.
- pop: lấy bản ghi, tương tự lấy bát ra khỏi chồng
- length: trả về số lượng bản ghi, tương ứng với chiều cao chồng bát.
- peak: trở về bản ghi đầu tiên, tương ứng với việc bạn chạm tay vào chiếc bát trên cùng
Queue
Queue, được hiểu là hàng đợi và là cấu trúc dữ liệu hoạt động theo nguyên tắc: vào trước ra trước (First in first out – FIFO). Một cách trực quan thì các bạn có thể liên tưởng đến lúc bạn xếp hàng mua vé xem phim, ai đến xếp hàng trước thì sẽ được bán vé trước và tương tự, ai xếp hàng sau thì sẽ được phục vụ sau. Các thao tác với cấu trúc dữ liệu queue:
- EnQueue: Thêm một bản ghi vào cuối hàng đợi, tương tự như việc có thêm người đến xếp hàng đợi mua vé.
- DeQueue: Lấy ra bản ghi đầu tiên, tương tự việc người đứng đầu hàng đang được nhân viên bán vé.
- IsEmpty: Kiểm tra hàng đợi có rỗng hay không, tương tự việc người khác hỏi bạn xem có ai đang xếp hàng mua vé hay không và bạn trả lời.
- Front: Trở về bản ghi đầu tiên