Como Limpar A Pilha

Índice:

Como Limpar A Pilha
Como Limpar A Pilha

Vídeo: Como Limpar A Pilha

Vídeo: Como Limpar A Pilha
Vídeo: Como Recuperar Eletrônicos Com Contatos de Pilhas Oxidados 2024, Novembro
Anonim

Um dos tipos de estruturas de dados amplamente usados hoje em dia na programação de aplicativos é a pilha. Sua peculiaridade é o princípio de organização dos elementos, em que sua adição e remoção são possíveis apenas um de cada vez e somente através do "topo", ou seja, de acordo com o princípio UEPS. Mas às vezes é necessário limpar toda a pilha de uma vez.

Como limpar a pilha
Como limpar a pilha

Necessário

  • - editor de texto ou IDE;
  • - um tradutor da linguagem de programação usada.

Instruções

Passo 1

Use métodos nos objetos da pilha que são projetados especificamente para limpar a pilha. Eles estão presentes na maioria das classes correspondentes de várias bibliotecas e estruturas. Por exemplo, a classe. NET Stack tem um método Clear. Um exemplo de sua aplicação em C # pode ser assim:

Pilha oStack = nova pilha (); // cria um objeto de pilha

oStack. Push ("000"); // preencher a pilha

oStack. Push ("111");

oStack. Clear (); // limpar a pilha

Passo 2

Métodos para alterar o número de elementos de classes de contêiner, nos quais a funcionalidade de classes de pilha é freqüentemente construída, também podem ser usados para limpeza. Você só precisa reduzir o número atual de elementos para zero. Por exemplo, a classe de modelo Qt QStack herda da classe de modelo QVector, que possui um método de redimensionamento. Um exemplo de seu uso poderia ser assim:

QStack oStack; // declaração do objeto da pilha

para (int i = 0; i <10; i ++) oStack.push (i); // preencher a pilha

oStack.resize (0); // limpar a pilha

etapa 3

A limpeza de um objeto de pilha geralmente pode ser feita por meio do operador de atribuição, que geralmente é implementado nas classes correspondentes. Para fazer isso, o objeto da pilha a ser limpo deve ser atribuído a um objeto temporário criado pelo construtor padrão. Por exemplo, a classe modelada de pilha da Biblioteca Padrão C ++, que é um adaptador para classes modeladas de contêiner, não possui métodos para alterar arbitrariamente o número ou remover todos os elementos. Você pode limpar assim:

std:: stack <int, std:: list> oStack; // declaração do objeto da pilha

para (int i = 0; i <10; i ++) oStack.push (i); // preencher a pilha

oStack = std:: stack(); // limpar a pilh

Passo 4

Limpe o objeto da pilha chamando o construtor de cópia usando o operador new com um argumento de objeto criado pelo construtor padrão:

std:: stack <int, std:: list> oStack; // declaração do objeto da pilha

para (int i = 0; i <10; i ++) oStack.push (i); // preencher a pilha

novo std:: stack(oStack); // limpar a pilh

Etapa 5

A pilha pode ser limpa recuperando sequencialmente todos os elementos usando os métodos apropriados:

std:: stack <int, std:: list> oStack; // declaração do objeto da pilha

para (int i = 0; i <10; i ++) oStack.push (i); // preencher a pilha

while (! oStack.empty ()) oStack.pop (); // limpar a pilha

No entanto, essa abordagem tem uma complexidade de tempo que depende linearmente do número de elementos na pilha. Portanto, seu uso não é racional.

Recomendado: