Lista Ligada
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;
}Discussão (1)
Carregando comentários...