#include #include struct no { int valor; struct no *proximo; }; struct lista { struct no *inicio; struct no *fim; }; void inserirValor(struct lista* lista, int valor) { struct no *novoNo = malloc(sizeof(struct no)); novoNo->valor = valor; novoNo->proximo = NULL; if (lista->inicio == NULL) { lista->inicio = novoNo; lista->fim = novoNo; } else { novoNo->proximo = lista->inicio; lista->inicio = novoNo; } } void inserirNoFinal(struct lista *lista, int valor) { struct no* novoNo = malloc(sizeof(struct no)); novoNo->valor = valor; novoNo->proximo = NULL; if (lista->inicio == NULL) { lista->inicio = novoNo; lista->fim = novoNo; } else { lista->fim->proximo = novoNo; lista->fim = novoNo; } } int main() { struct lista lista; lista.inicio = NULL; lista.fim = NULL; inserirValor(&lista, 5); inserirValor(&lista, 10); inserirNoFinal(&lista, 20); printf("Inicio %d\n",lista.inicio->valor); printf("Fim %d",lista.fim->valor); return 0; }