Ir para conteúdo
Fórum Script Brasil
  • 0

Inverter nós em uma lista encadeada simples.


Manoel Kikachi Mendez

Pergunta

Boa noite, pessoal.

Estou com um exercício da faculdade sobre Listas Encadeadas Simples, e queria fazer com que a ordem dos nós fique inversa a que inseri nos nós.

Como posso fazer isso?

 

É basicamente nessa maneira:

**ANTES**

L -> 
(800, 99.99, Polystation 5) -> 
(981, 199.99, XCaixa Series Y) -> 
(345, 299.99, mouse gamer) ->
(123, 699.99, teclado) ->
NULL

**DEPOIS**

L -> 
(123, 699.99, teclado) ->
(345, 299.99, mouse gamer) ->
(981, 199.99, XCaixa Series Y) -> 
(800, 99.99, Polystation 5) -> 
NULL

 

A) Função que inverte o nó da lista

   

// (d) Retorna a Lista invertida. Se a lista está vazia, retorne uma lista vazia.
    Lista *inverter(const Lista *L) {
        // IMPLEMENTE ESTA FUNÇÃO
        Lista* q;   /* variável auxiliar para nova lista */
        No *p;
        int aux;
    
        for (p = L; p != NULL; p = p->prox)
    
            if (p-> == NULL)
            {
                aux = p->prox;
                p->prox = NULL;
                return p;
            }
    }

B) Structs de `_produto`, `_no` e `_lista`

   

// struct que define um produto
    typedef struct _produto {
        int num_serie; // numero de série do produto
        char nome[64];
        double preço;
    } Produto;


    
   

 // struct que define um nó curcular duplamente encadeado
    typedef struct _no {
        Produto *prod;
        struct _no *prox;
    } No;


    
   

 // struct que define uma Lista Ligada Simples
    typedef struct _lista {
        No *inicio;
        No *fim;
        int tamanho; // numero de nós da lista
    } Lista;


C) Código acionado na `main()`:

        

 else if (strcmp(comando, "inverte") == 0) {
           Lista *L_aux = inverter(L);
           destroiLista(&L);
           L = L_aux;
         }
Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...