*ADT (Abstract Data Types) – kiểu dữ liệu trừu tượng bao gồm: Tập các giá trị (đối tượng) Tập các phép toán có thể thực hiện với tất cả các giá trị này Cách biểu diễn dữ liệu được sử dụng chung cho tất cả các giá trị này *Stack (ngăn xếp): là một kiểu dữ liệu trừu tượng, một dạng đặc biệt của danh sách tuyến tính (dãy gồm 0 hoặc nhiều hơn các phần tử cùng kiểu cho trước) trong đó các đối tượng được nạp vào (push) và lấy ra (pop) chỉ từ một đầu gọi là đỉnh (top) của danh sách