7.1栈的应用
栈:后进先出,可以理解为一个箱子,而箱子的容量仅供一本书放入或拿出。每次可以把一本书放在箱子的最上方,也可以把箱子最上方的书拿出。
栈顶指针:始终指向栈的最上方元素的一个标记,栈中没有元素(即栈空)时令TOP为-1.
栈的常见操作示范实现,使用数组st[]来实现栈:
(1)清空(clear):
栈的清空操作将栈顶指针TOP置为-1,表示栈中没有元素。
void clear(){
TOP = -1;
}
(2)获取栈内元素个数(size)
栈内元素个数为TOP+1
int size(){
return TOP + 1;
}
(3)判空(empty)
当TOP == -1时,栈为空,返回true;否则,返回false
bool empty(){
if(TOP == -1) return true;
else return false;
}
(4) 进栈(push)
void push(int x){
st[++TOP] = x;
}
(5)出栈(pop)
void pop(){
TOP--;
}
(6)取栈顶元素(top)
int top(){
return st[TOP];
}
在使用pop()函数和top()函数之前必须先使用empty()函数判断栈是否为空。
可以使用STL中的stack容器,STL中没有实现栈的清空,如果需要实现栈的清空,可以用一个while循环反复pop出元素直到栈空。
while(!st.empty()){
st.pop();
}
算法笔记 第7章 提高篇(1)--数据结构专题(1) 学习笔记
原文:https://www.cnblogs.com/coderying/p/11963923.html