Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
#include <stdio.h> #include <stdlib.h> typedef struct ld{ int valor; struct ld *prox; }ld; ld *inicio = NULL, *aux = NULL, *novo = NULL; void novo_elemento(){ novo = malloc(sizeof(ld));//malloc aloca a memória de um tamanho(bytes) que caiba o (ld) printf("Digite o valor"); scanf("%d",&novo->valor); //*novo.valor == novo->valor novo->prox = NULL; } void insere_inicio(){ novo_elemento(); novo->prox = inicio; inicio=novo; } void remove_inicio(){ if(inicio!=NULL){ aux=inicio; inicio=inicio->prox; free(aux); } } void insere_fim(){ novo_elemento(); if(inicio == NULL){ inicio = novo; } else{ aux=inicio; while(aux->prox !=NULL) aux= aux->prox; aux->prox = novo; } } void remove_fim(){ ld *aux2 = inicio; if(inicio==NULL){ printf("Lista vazia"); } else{ aux=inicio; while(aux->prox != NULL) aux= aux->prox; while(aux2->prox != aux) aux2 = aux2->prox; aux2->prox = NULL; free(aux); } } void insere_qq_pos(int pos){ int cont = 1; ld *aux2 = inicio; if(pos==1){ insere_inicio(); } else{ novo_elemento(); while(cont < pos){ aux = aux->prox; cont++; } while(aux2->prox != aux) aux2 = aux2->prox; novo->prox = aux2->prox; aux2->prox=novo; } } void remove_qq_pos(int pos){ int cont = 1; ld *aux2 = inicio; if(inicio==NULL){ printf("Lista vazia"); } else{ if(pos == 1){ remove_inicio(); }else{ aux=inicio; while(cont<pos){ aux=aux->prox; cont++; } while(aux2->prox != aux) aux2=aux2->prox; aux2->prox = aux->prox; free(aux); } } } void mostrar_lista(){ if(inicio == NULL){ printf("Lista Vazia"); } else{ aux=inicio; while(aux != NULL) { printf("%d",aux->valor); aux = aux->prox; } } } int main(){ insere_inicio(); insere_inicio(); insere_inicio(); mostrar_lista(); return 0; }
Compartilhar