TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

A Lista Dinâmica (insere e exclui inicio/fim e qualquer posição)

Por:   •  3/10/2019  •  Trabalho acadêmico  •  410 Palavras (2 Páginas)  •  170 Visualizações

Página 1 de 2

#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;

...

Baixar como (para membros premium)  txt (1.9 Kb)   pdf (29 Kb)   docx (8.7 Kb)  
Continuar por mais 1 página »
Disponível apenas no TrabalhosGratuitos.com