Trong khoa học máy tính, ngăn xếp là một kiểu dữ liệu trừu tượng phục vụ như một tập hợp các yếu tố cho hai hoạt động chính sau:
- push , thêm phần tử vào ngăn xếp và
- pop, xoá phần tử được thêm vào gần nhất khỏi ngăn xếp nếu nó vẫn chưa bị xoá.
Trật tự các phần tử được thêm vào và lấy ra ngăn xếp còn được gọi dưới cái tên là LIFO (last in, first out) tức vào cuối ra đầu. Ngoài ra ta còn có phương thức peek() để lấy phần tử trên cùng ngăn xếp mà không cần xoá nó. Cái tên "ngăn xếp" dựa trên các hình ảnh thực tế từ các vật phẩm vật lý xếp chồng lên nhau, rất dễ dàng để lấy mục trên cùng khỏi ngăn xếp, nhưng với các mục nằm sâu bên dưới ta sẽ phải cần lấy rât nhiều mục khác trước.
Biểu diễn đơn giản về hoạt động của ngăn xếp các thao tác push và pop.