Tôi không thể tin rằng chúng ta chưa có cái này .. Đây là một trong những cấu trúc dữ liệu quan trọng nhất trong lập trình, nhưng vẫn đủ đơn giản để thực hiện nó trong một môn đánh gôn :
Thử thách
Nhiệm vụ của bạn là triển khai một ngăn xếp cho phép đẩy và bật số, để kiểm tra việc thực hiện của bạn và giữ cho I / O đơn giản, chúng tôi sẽ sử dụng cài đặt sau:
- Đầu vào sẽ là danh sách các số nguyên không âm
Mỗi số nguyên dương chỉ ra một và mỗi chỉ ra một - loại bỏ phần tử trên cùng. 0 pop ()
- Đầu ra sẽ là ngăn xếp kết quả
Thí dụ
Ví dụ: nếu chúng tôi đã đưa ra :
Đầu ra sẽ là:
Quy tắc
- Đầu vào sẽ là danh sách các số nguyên không âm ở bất kỳ định dạng I / O mặc định nào
- bạn có thể sử dụng số nguyên âm để biểu thị sự kết thúc của một luồng số nguyên
- Đầu ra sẽ là một danh sách / ma trận / .. của ngăn xếp kết quả
- sự lựa chọn của bạn trong đó phần tử hàng đầu sẽ là (ở đầu hoặc cuối), đầu ra chỉ cần nhất quán
- đầu ra rất linh hoạt (ví dụ: các số nguyên được phân tách bằng các dòng mới sẽ ổn), điều duy nhất quan trọng là thứ tự
- bạn có thể sử dụng một số nguyên âm để biểu thị dưới cùng của ngăn xếp
- Bạn được đảm bảo rằng sẽ không bao giờ có khi ngăn xếp trống
Ví dụ
[] -> []
[1] -> [1]
[1,0,2] -> [2]
[4,0,1,12] -> [12,1]
[8,3,1,2,3] -> [3,2,1,3,8]
[1,3,7,0,0,0] -> []
[13,0,13,10,1,0,1005,5,0,0,0] -> [13]
[12,3,0,101,11,1,0,0,14,0,28] -> [28,101,12]