Directorio de artículos
1 Conceptos básicos de pila
Características : La pila stack
es una estructura de datos de primero en entrar, último en salir ( FILO
primero en entrar, último en salir), y solo el extremo superior de la pila puede insertar o eliminar datos.
Elemento superior de la pila : solo el mundo exterior puede acceder y utilizar el elemento superior top()
de la pila, por lo queLa pila no permite el comportamiento transversal.
Empuje / Empuje la pila :, push()
empuje el elemento hacia la parte superior de la pila. Pop
/ pop the stack :, pop()
saca el elemento de la parte superior de la pila.
Interfaz común de 2 pilas
Nota: cuando utilice el contenedor de pila, debe incluir el archivo de encabezado
#include <stack>
.
Constructor :
① stack<T> stk;
: constructor sin argumentos predeterminado, implementado por plantilla de clase .
② stack(const stack &stk);
: Copiar constructor, usar el objeto de pila existente para inicializar un nuevo objeto.
Operación de asignación :
stack& operator=(const stack &stk);
sobrecargue el operador de asignación, use el contenedor de la pila de destino para asignar un valor al contenedor de la pila actual.
Acceso a datos :
push(elem);
empuja elementos a la parte superior de la pila.
pop();
: Saca el elemento de la parte superior de la pila.
top();
: Vuelve al elemento superior de la pila.
Operación de tamaño :
empty();
juzgue si la pila está vacía.
size();
: Devuelve el tamaño de la pila.
Ejemplo : interfaces comunes de la pila
#include <iostream>
using namespace std;
#include <stack>
int main() {
//创建stack容器
stack<int> s;
//压栈
s.push(1);
s.push(2);
s.push(3);
s.push(4);
s.push(5);
cout << "当前栈的大小:" << s.size() << endl; //5
while (!s.empty()) {
cout << "当前栈顶元素:" << s.top() << endl; //5→4→3→2→1
//出栈
s.pop();
}
cout << "当前栈的大小:" << s.size() << endl; //0
return 0;
}