棧
棧:操作受限的線性表,后進(jìn)先出
棧的內(nèi)部存儲(chǔ)既可以用順序表,也可以用鏈表,分別稱作順序棧和鏈棧。
先來(lái)實(shí)現(xiàn)一個(gè)簡(jiǎn)單的順序棧
C++
class MyStack {
char *buffer;
int size;
int top;
public:
MyStack(int size);
~MyStack();
bool stackEmpty();
bool stackFull();
void clearStack();
int stackLength();
void push(char elem);
void pop(char &elem);
void stackTraverse();
};
MyStack::MyStack(int size){
buffer = new char[size];
this->size = size;
top = 0;
}
MyStack::~MyStack(){
delete [] buffer;
}
bool MyStack::stackEmpty(){
return top == 0;
}
bool MyStack::stackFull(){
return top == size;
}
void MyStack::clearStack(){
top = 0;
}
int MyStack::stackLength(){
return top;
}
void MyStack::push(char elem){
buffer[top++] = elem;
}
void MyStack::pop(char &elem){
elem = buffer[--top];
}
void MyStack::stackTraverse(){
for (int i=0; i<top; i++) {
std::cout<<buffer[i]<<std::endl;
}
}