Ir para conteúdo

POWERED BY:

Arquivado

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

Beuleal

Lista Ligada

Recommended Posts

Olá amigos, estou fazendo um sistema aqui, porem estou com dificuldades em ligar mais uma celula a uma mesma celula q já tem ligacao. Ex:

 

[ ]] -> [ ]] -> [ ]] -> // NULO -----> LINHA DE CLIENTES

|

v

[ ]]

|

v

// Nulo

 

|

|

|

V

 

LINHA DE LIVROS QUE O CLIENTE PEGOU

 

 

------------------------------------------------------------

 

Segue minhas structs:

 


typedef struct ficha_livros {

       int id_livro;
       char nome[20];
       char autor[20];
       char genero[20];
       int ret_dia;
       int ret_mes;
       int ret_ano;
       int dev_dia;
       int dev_mes;
       int dev_ano;
       int exemplares;
       ficha_livros *prox;

};


typedef struct ficha_clientes {

       int id_cliente;
       char nome[20];
       ficha_livros *prox_livro;
       ficha_clientes *prox;

};

 

Segue meu código:

 




while (listar_clientes != NULL){

         if(listar_clientes->id_cliente == id_cliente){

                printf("ID do livro: ");
                scanf("%d",&id_livro);

                while (listar_livros != NULL){

                      if (listar_livros->id_livro == id_livro){

                           printf("[%d]  --> Titulo: %s \n",listar_livros->id_livro,listar_livros->nome);
                           printf("     --> Autor: %s \n",listar_livros->autor);
                           printf("     --> Genero: %s \n",listar_livros->genero);
                           printf("     --> Exemplares Disponiveis: %d \n\n",listar_livros->exemplares);

                           if(listar_livros->exemplares == 0 ){

                               printf("\n\n            Nenhum Exemplar Disponivel\n\n");
                               getchar();
                               getchar();
                               return;                     

                           }


                           livro_temp=(ficha_livros *)malloc(sizeof(ficha_livros));
                           livro_temp->prox = NULL;


                           strcpy(livro_temp->nome,listar_livros->nome);
                           strcpy(livro_temp->autor,listar_livros->autor);
                           strcpy(livro_temp->genero, listar_livros->genero);
                           livro_temp->id_livro = listar_livros->id_livro;
                           livro_temp->ret_dia = *dia;
                           livro_temp->ret_mes = *mes;
                           livro_temp->ret_ano = *ano;


                           listar_livros->exemplares = listar_livros->exemplares - 1;

                           if(listar_clientes->prox_livro == NULL){

                                  printf("\n               LOCADO PRIMEIRO LIVRO\n\n");  
                                  listar_clientes->prox_livro = livro_temp;
                                  break;                   

                           } else {                            

                                  while(listar_clientes->prox_livro != NULL){

                                       printf("[%d]  --> Titulo: %s \n",listar_clientes->prox_livro->id_livro,listar_clientes->prox_livro->nome);
                                       printf("     --> Autor: %s \n",listar_clientes->prox_livro->autor);
                                       printf("     --> Genero: %s \n",listar_clientes->prox_livro->genero);
                                       printf("     --> Exemplares Disponiveis: %d \n\n",listar_clientes->prox_livro->exemplares);

                                       if(listar_clientes->prox_livro->prox == NULL){

                                          listar_clientes->prox_livro->prox = livro_temp;
                                          break;

                                       }

                                       listar_clientes->prox_livro = listar_clientes->prox_livro->prox;

                                  }


                           }

                          break;


                       }

                      listar_livros = listar_livros->prox;

                }                  

         }  



         listar_clientes = listar_clientes->prox;

    }

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.