Ngăn xếp(Stack) Phần 1
Tổng quan
Ngăn xếp là loại cấu trúc dữ liệu có tính chất “vào trước thì ra sau” (Last In First Out – LIFO).
Nó có thể được thể hiện như sau:

Push: Chèn dữ liệu vào ngăn xếp.
Pop: Lấy dữ liệu ra từ đỉnh của ngăn xếp.
Top: Biến lưu trữ vị trí đỉnh của ngăn xếp.
Khác so với hàng đợi. vị trí lấy chèn dữ liệu vào và lấy dữ liệu ra là khác nhau, thì với ngăn xếp ta chèn và lấy dữ liệu từ ngăn xếp trên cũng một vị trí gọi là vị trí đỉnh (top).
Ngăn xếp cài đặt bởi con trỏ
Ưu điểm của cách này là bạn sẽ tối ưu bộ nhớ. Không bị giới hạn các phần tử có trong ngăn xếp. Ngoài ra còn có nhiều điểm mạnh khác.

struct Node //Khai bao 1 Node { int Data; //du lieu Node *Next; //link }; typedef struct Stack //khai bao 1 stack { Node *Top;//dinh top }; void Khoitao (Stack &S) //khoi tao Stack rong,tham chieu S { S.Top = NULL;//DANH SACH RONG LA DANH SACH KHONG Co PHAN TU NAO } int Kiemtrarong(Stack S) //kiem tra Stack rong { return (S.Top == NULL); }