堆疊常以陣列模擬,包含兩個重要資料:存放資料的陣列與堆疊指標(sp)。
兩個核心操作為 push()(推入)與 pop()(彈出)。
#define N 100
int stack[N], sp = 0; // 堆疊與堆疊指標
void push(int data){
if(sp >= N) std::cout << "Stack full\n";
else stack[sp++] = data;
}
int pop(){
if(sp <= 0){
std::cout << "Stack empty\n";
return -1;
}else{
return stack[--sp];
}
}
const int N = 10;
class Stack{
private:
int data[N]; int sp;
public:
Stack(){ sp = 0; }
void push(int x){
if(sp < N) data[sp++] = x;
else std::cout << "Stack full.\n";
}
int pop(){
if(sp > 0) return data[--sp];
else { std::cout << "Stack empty.\n"; return -1; }
}
};