#include<stdio.h>
#include<stdlib.h>
#include<string.h>
//declarando as variavies de ponteiro
typedef struct ponto{
char nome [60];
//ponteiro de sequencia
struct i_ponto * proximo;
//ponteiro para informar o valor na lista de ordem ciclica
struct i_ponto * anterior;
}t_lista;
//declarando inicio da lista
typedef struct lista{
t_lista * inicio = NULL;
t_lista * fim = NULL;
}i_lista;
//inicializar lista
void executar_lista(i_lista * n_lista){
n_lista -> inicio = NULL;
n_lista -> fim = NULL;
}
//criação da estrutura para inserir o valor primario na lista
void inserir_elemento(i_lista * n_lista){
t_lista * novo_dado;
novo_dado = t_lista;
printf("Digite o nome da série: ");
scanf("%s", &novo_dado -> nome);
//declarando apontamento de direção do dado inserido com if e else
novo_dado -> proximo = NULL;
novo_dado -> anterior = NULL;
if(n_lista -> inicio == NULL){
n_lista -> inicio = novo_dado;
n_lista -> fim = novo_dado;
}
else{
n_lista -> inicio -> anterior = novo_dado;
//ao invés de zerar os dados como anteriormente, aponta os novos dados o volor inicial e proximo.
novo_dado -> proximo = n_lista -> inicio;
n_lista -> inicio = novo_dado;
}
}
//criação da estrutura para inserir o ultimo valor na lista
void inserir_elemento_fim(i_lista * n_lista){
t_lista * novo_dado;
novo_dado = t_lista;
printf("Digite o nome da série: ");
scanf("%s", &novo_dado -> nome);
//declarando em qual posição da lista o novo dado será inserido com if e else(duplo encadeamento)
novo_dado -> proximo = NULL;
novo_dado -> anterior = NULL;
if(n_lista -> inicio == NULL){
n_lista -> inicio = novo_dado;
n_lista -> fim = novo_dado;
}
else{
n_lista -> fim -> proximo = novo_dado;
novo_elemento -> anterior =n_lista -> fim;
n_lista -> fim = novo_dado;
}
}
//imprimir toda a lista do inicio na tela
void imprimir_lista_inicio(i_lista * n_lista){
t_lista * aux;
if(n_lista -> inicio == NULL){
printf("Não há dados na lista\n");
}
else{
aux = n_lista -> inicio;
while(aux != NULL){
printf("Séries: %s\n", aux -> nome);
aux = aux -> proximo;
}
printf("Fim da lista!");
}
}
//imprimir toda a lista do fim na tela
void imprimir_lista_fim(i_lista * n_lista){
t_lista * aux;
if(n_lista -> fim == NULL){
printf("Não há dados na lista\n");
}
aux = n_lista -> fim;
while(aux != NULL){
printf("Séries: %s\n", aux -> nome);
aux = aux -> anterior;
}
printf("Fim da lista!");
}
Boa tarde, pessoal
Alguém poderia me ajudar a saber o porque minha estrutura não está reconhecendo minhas variáveis "inicio" e "fim".
Obrigado!