Stack tr
ong th
vi
n chu
n c++
ư
ệ
ẩ
Stack (ng
ăn x
ếếp) là m
t ki
u cấếu trú
c d
li
u làm v
i
c theo d
ng las
t in fr
st out, nghĩa là c
ác phấần t
ộ
ể
ữ
ệ
ệ
ạ
ử
seẽ khi thếm seẽ đ
c thếm vào đ
ấầu .
T
rong th
vi
n chu
n c++ ch
a nhiếầu d
ng cấếu trúc d
li
u khác
ượ
ư
ệ
ẩ
ứ
ạ
ữ
ệ
nh
m
ng
, vector
,… tron
g đó có st
ack.
ư
ả
Đ
s
d
ng th
vi
n s
tack cấần th
ếm vào s
tack fle
ể
ử
ụ
ư
ệ
#include <st
ack>
V
à đ
t
o r
a m
t “ngăn x
ếếp” cấần c
ó cú pháp nh
sau
ể
ạ
ộ
ư
Stack <ki
u d
li
u> tến; (
ví d
: Stack<int> s)
ể
ữ
ệ
ụ
V
i c
ác ki
u d
li
u là int, bool, char
, string,short,… các ki
u d
li
u thông th
ng
v
à th
m chí là c
ớ
ể
ữ
ệ
ể
ữ
ệ
ườ
ậ
ả
ki
u d
li
u do ng
i dùng đinh nghĩa nh
struc
t, class,…
ể
ữ
ệ
ườ
ư
M
t vài ph
ng th
c có liến quan đếến s
tack tr
ong th
vi
n chu
n c+
+
ộ
ươ
ứ
ư
ệ
ẩ
push() (đ
c g
i ra t
class st
ack băầng dấếu chấếm, ví d
: s.push()): Thếm vào đấầu ng
ăn x
ếếp
ượ
ọ
ừ
ụ
siz
e()(đ
c
g
i ra t
class s
tack b
ăầng dấếu chấếm, ví d
: s.siz
e()): là hàm seẽ tr
vếầ sôế l
ng phấần t
ượ
ọ
ừ
ụ
ả
ượ
ử
trong ng
ăn x
ếếp
top() (đ
c g
i ra t
class s
tack băầng dấếu ch
ấếm, ví d
: s.t
op()): là hàm seẽ tr
vếầ giá tr
đấầu ng
ăn x
ếếp
ượ
ọ
ừ
ụ
ả
ị
nh
ng không xó
a đấầu ng
ăn x
ếếp
ư
empty()(đ
c g
i ra t
class st
ack băầng dấếu chấế
m, ví d
: s.empty()): là hàm seẽ tr
vếầ true n
ếếu ngăn
ượ
ọ
ừ
ụ
ả
x
ếếp đang không có phấần t
nào
, f
alse khi ngă
n đang có phấần t
ử
ử
pop()(đ
c g
i r
a t
class st
ack băầng dấếu chấếm, ví d
: s.empty()) : là hàm x
óa đi phấần t
đấầu ngă
n
ượ
ọ
ừ
ụ
ử
x
ếếp, sôế l
ng phấần t
seẽ gi
m đi 1
ượ
ử
ả
ví d
ụ
#include <iostr
eam>
#include <stack>
using namespace std;
int main()
{
stack <int> s;
s.push(
1
);
s.push
(2
);
s.push(3);
s.push(
4
);
s.push(5);
cout << “\n s.size() : ” << s.s
ize();
cout << “\n s.top() : ” << s.top
();
cout << “\n s.pop() : “;
s.pop();
if (s.empty())
cout << “s is empty”<<endl;
else
cout << “s is not empty”<<endl;
retur
n 0;
}
In ra mà
n hình console seẽ là