Ir ao conteúdo

Inverter Lista Encadeada


Kuiper

Posts recomendados

Postado

Como crio uma rotina para isso?A lista é simples.

Ex: A lista é 3 > 4 > 5 > 8

e a rotina faz: 8>5>4>3, alterando os ponteiros....

Postado

Simples,

Partindo do pre-suposto que temos um ponteiro sempre no primeiro elemento da lista E um ponteiro sempre no ultimo elemento da lista, façamos:

pointer *aux; ponteiro auxiliar, como nao sei o tipo(nome da classe) coloquei ponter mesmo

aux = end; //end é o ponteiro que aponta no ultimo elemento

end = first; //first é o ponteiro que ta no primeiro elemento, o end passa a aponter pro começo

first = aux; //Agora o primeiro passa a apontar a antiga localizaçao do end.

aux = NULL; //segurança ^^

Ta invertida.

Postado

Dá uma olhada pode ser que te ajude!

//função especializada em inverter a ordem dos elementos

void inverterordem(struct Tfila *F){

struct Tno *aux,*aux1,*temp;

aux=NULL;

aux1=F->pra mim;

temp=aux1->prox;

while(aux1!=NULL){

aux1->prox=aux;

aux=aux1;

aux1=temp;

if(temp!=NULL){

temp=temp->prox;

}

}

temp=F->pra mim;

temp->prox=NULL;

F->pra mim=F->ult;

F->ult=temp;

}

  • 1 ano depois...
Postado

bem para inverter uma lista basta apenas fazer uma função recursiva

void lista_impri_rec (lista* l)

/*verifica se esta vazia*/

if (!lista_vazia(l)){

/*chama a função recursiva invertendedo a ordem */

lista_impri_rec (l->prox);

/*imprime invertida */

printf("%d ",l->info);

}

}

Arquivado

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

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...