Khái niệm H oạt động theo nguyên lý “vào sau ra trước” ( L ast I n F irst O ut (LIFO). Tức là, phần tử cuối cùng được chèn vào ngăn xếp sẽ là phần tử đầu tiên được lấy ra khỏi ngăn xếp. Một ví dụ trực quan, bạn có một chồng sách và bạn để nó trong một cái hộp như hình phía dưới. Giả sử hộp này vừa khít các cuốn sách. Khi đó, bạn có các thao tác:
Các hoạt động cơ bản trên stack Hoạt động push () : thêm (hay lưu trữ) một phần tử vào trong stack . Hoạt động pop () : xóa một phần tử từ stack .
Các hoạt động cơ bản trên hàng đợi Để sử dụng stack một cách hiệu quả, chúng ta cũng cần kiểm tra trạng thái của hàng đợi. Để phục vụ cho mục đích này, dưới đây là một số tính năng hỗ trợ khác của stack : peekStack () : lấy giá trị của phần tử ở đầu stack , mà không xóa phần tử này. isEmpty () : kiểm tra stack có rỗng không . initStack () : Khởi tạo stack
Khai báo Cấu trúc dữ liệu
Khởi tạo một node mới
Hàm khởi tạo hàng đợi InitStack ()
Hàm thêm vào đầu Stack (Push)
Hàm loại bỏ nút đầu tiên khỏi stack (pop)
Các hàm khác
Ví dụ áp dụng Đổi biểu diễn một số từ hệ Thập phân sang hệ nhị phân Ví dụ : 12 10 - > 1100 2 Thuật toán : Chia liên tiếp số cho 2, lấy phần dư 12| 2 6| 0 3| 0 1| 1 0| 1 Đảo ngược dãy số phần dư -> kết quả
Code
Code
Code
Bài tập đề nghị 1) Đổi biểu diễn một dãy số thập phân sang số nhị phân từ file input.txt và ghi kết quả vào file output.txt 2) Đổi biểu diễn số thập phân sang hệ 16 ( hexa )