English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
No campo da ciência da computação, nos dedicamos a vários programas. Cada um deles tem seu próprio domínio e utilidade. De acordo com o propósito da criação do programa e o ambiente, temos uma grande variedade de estruturas de dados disponíveis. Uma delas é 'pilha'. Antes de discutir esse tipo de dados, vamos olhar para sua sintaxe.
template<class T, class Container = deque<T> > class stack;
Esta estrutura de dados utiliza a técnica LIFO, onde LIFO significa 'último a entrar, primeiro a sair'. O elemento inserido primeiro será extraído no final, e assim por diante. Há um elemento chamado 'topo', que é o elemento localizado na posição mais alta. Todas as operações de inserção e exclusão são realizadas no elemento superior da pilha.
A pilha implícita na área de aplicação é um adaptador de contêiner.
O contêiner deve suportar a lista de operações a seguir:
empty
size
back
push_back
pop_back
TO parâmetro especifica o tipo de elemento que o adaptador de contêiner manterá.
ContainerO parâmetro especifica o objeto interno do contêiner que contém os elementos da pilha.
A seguir está uma lista dos tipos de membros da pilha, seguidos de uma breve descrição.
Tipo membro | Descrição |
---|---|
value_type | Especifica o tipo do elemento. |
container_type | Especifica o tipo de contêiner básico. |
size_type | Especifica o intervalo de tamanho do elemento. |
Através das funções, podem ser usados ou incorporados objetos ou variáveis na área de programação. A pilha oferece muitas funções que podem ser usadas ou incorporadas em programas. A lista a seguir é semelhante:
Função | Descrição |
---|---|
(construtor) | Esta função é usada para construir o contêiner da pilha. |
empty | Esta função é usada para testar se a pilha está vazia. Se a pilha estiver vazia, esta função retorna true, caso contrário, retorna false. |
size | Esta função retorna o tamanho do contêiner da pilha, que é a medida do número de elementos armazenados na pilha. |
top | Esta função é usada para acessar o elemento no topo da pilha. Este elemento desempenha um papel muito importante, pois todas as operações de inserção e exclusão são executadas no elemento no topo. |
push | Esta função é usada para inserir um novo elemento no topo da pilha. |
pop | Esta função é usada para remover elementos, deletando elementos da pilha a partir do topo. |
emplace | Esta função é usada para inserir um novo elemento na pilha acima do elemento atual no topo. |
swap | Esta função é usada para trocar o conteúdo de dois contêineres de referência. |
Operadores relacionais | Operadores relacionais |
uses allocator<stack> | Como o próprio nome sugere, a função não-membro usa o alocaador para a pilha. |
#include <iostream> #include <stack> using namespace std; void newstack(stack<int> ss) { stack<int> sg = ss; while (!sg.empty()) { cout << '\t' << sg.top(); sg.pop(); } cout << '\n'; } int main() { stack<int> newst; newst.push(55); newst.push(44); newst.push(33); newst.push(22); newst.push(11); cout << "última pilha é: "; newstack(newst); cout << "\n newst.size() : " << newst.size(); cout << "\n newst.top() : " << newst.top(); cout << "\n newst.pop() : "; newst.pop(); newstack(newst); return 0; }
Saída:
O último pilar é : 11 22 33 44 55 newst.size() : 5 newst.top() : 11 newst.pop() : 22 33 44 55