File: /home/cesar/Desktop/data/UFAM…DI/coding/lista/listasimples.c
Transcrição
File: /home/cesar/Desktop/data/UFAM…DI/coding/lista/listasimples.c
File: /home/cesar/Desktop/data/UFAM…DI/coding/lista/listasimples.c #include <stdio.h> #include <stdlib.h> typedef struct elementar TElementar; struct elementar{ int info; TElementar* prox; }; TElementar *criaLista(){ return (NULL); } TElementar *removerLista(TElementar *inicio){ TElementar *aux; if (inicio != NULL){ aux = inicio; inicio = inicio->prox; free(aux); } return inicio; } TElementar *removerFinalLista(TElementar *inicio){ TElementar *caminha, *anterior; if (inicio == NULL) return inicio; else if(inicio->prox == NULL){ caminha = inicio; inicio = inicio->prox; free(caminha); }else{ caminha = inicio; //anterior = NULL; while(caminha->prox->prox != NULL){ //anterior = caminha; caminha = caminha->prox; } free(caminha->prox); caminha->prox = NULL; //free(aux); //anterior->prox = NULL; //free(caminha); } return inicio; } TElementar *inserirLista(TElementar *inicio, int info){ TElementar *novo; novo = (TElementar *)malloc(sizeof(TElementar)); novo->info = info; novo->prox = inicio; return novo; } Page 1 of 3 File: /home/cesar/Desktop/data/UFAM…DI/coding/lista/listasimples.c TElementar *inserirFinalLista(TElementar *inicio, int num){ TElementar *novo, *caminha; novo = (TElementar *) malloc(sizeof(TElementar)); novo->info = num; novo->prox = NULL; if(inicio == NULL) inicio = novo; else{ caminha=inicio; while(caminha->prox != NULL){ caminha = caminha->prox; } caminha->prox = novo; } return inicio; } TElementar* procurarLista(TElementar *inicio, int nro){ TElementar* caminha; caminha = inicio; while(caminha!=NULL){ if(caminha->info == nro) break; else caminha = caminha->prox; } return caminha; } void imprimirLista(TElementar *inicio){ TElementar *caminha; caminha = inicio; printf("\n"); while(caminha!=NULL){ printf("%d ", caminha->info); caminha = caminha->prox; } printf("\n"); } void imprimirRecursivaLista(TElementar *caminha){ if (caminha != NULL){ imprimirRecursivaLista(caminha->prox); printf("%d ", caminha->info); } } int main(){ TElementar *p; p = criaLista(); p = inserirFinalLista(p, 10); p = inserirFinalLista(p, 15); p = inserirFinalLista(p, 2); Page 2 of 3 File: /home/cesar/Desktop/data/UFAM…DI/coding/lista/listasimples.c imprimirLista(p); p = removerLista(p); imprimirLista(p); p = removerFinalLista(p); imprimirLista(p); // } imprimirRecursivaLista(p); Page 3 of 3