Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Rogeriogdias

Como remover 10° nó de uma pilha

Recommended Posts

Pessoal fiz o seguinte algoritmo pra remover o 10° nó de uma pilha, esta correto ?

 

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
struct pilha{
       int dado; 
       struct pilha *cima; 
       } *Lista, *D, *S, *R;
int aux; 

D=Lista;
aux=0;

if (Lista==NULL) 
   printf ("\n\nERRO. Lista vazia\n");
else {
    if (D->dado==10){ 
    Lista=NULL;
    free(D);
    aux=1;
    }                 
    else{
    while (D->cima!=NULL){
          S=D;
          D=D->cima;
          if (D->dado==10){
             S->cima=NULL;
             aux=1;
             while (D->cima!=NULL){ 
                   R=D;
                   D=D->cima;
                   free(R);}
             free(D);
          P=S; 
          printf("\nO conteúdo procurado foi encontrado e apagado.\n");
          }
    }
    }
}
if (aux==0)
   printf("\n O conteudo procurado não está na lista.\n");

  system("PAUSE");	
  return 0;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não sei o que você tem em mente, mas como algumas pessoas já postaram códigos que removiam pedaços no meio de alguma coisa que consideravam ser uma pilha: pilha é last-in,first-out ; só se remove o elemento no topo dela. Se você se desviar disso, então não é mais uma pilha.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.