Buscar

AVA1 - Estrutura de Dados - UVA

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 6 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 6 páginas

Prévia do material em texto

#include <stdio.h> 
#include <stdlib.h> 
#include <locale.h> 
 
 
typedef struct sPonto{ 
 int info; 
 struct sPonto *prox; 
} Ponto; 
 
typedef struct sListaSimples{ 
 Ponto *prim; 
} ListaSimples; 
 
void criarLista(ListaSimples *pList){ 
 pList->prim = NULL; 
} 
 
void consultar(ListaSimples *pList){ 
 Ponto *p; 
 printf("Lista: "); 
 for (p = pList->prim; p != NULL; p = p->prox){ 
 printf("%d ->", p->info); 
} 
 printf("NULL\n"); 
} 
 
void insInicial(ListaSimples *pList, int v){ 
 Ponto *novo; 
 novo = (Ponto*)malloc(sizeof(Ponto)); 
 if (novo != NULL){ 
 novo->info = v; 
 novo->prox = pList->prim; 
 pList->prim = novo; 
 
 } else{ 
 printf("Memória Insuficiente\n"); 
 } 
} 
 
void remInicial(ListaSimples *pList){ 
 Ponto *pAux = pList->prim; 
 if (pAux != NULL){ 
 pList->prim = pList->prim->prox; 
 free(pAux); 
 printf("Valor Removido\n"); 
 } 
 else{ 
 printf("Lista Vazia\n"); 
 } 
} 
 
void insNaOrdem(ListaSimples *pList, int v){ 
 Ponto *novo; 
 novo = (Ponto*)malloc(sizeof(Ponto)); 
 if (novo != NULL){ 
 novo->info = v; 
 Ponto *pAtu, *pAnt; 
 pAnt = NULL; 
 pAtu = pList->prim; 
 while (pAtu != NULL && pAtu->info < v){ 
 pAnt = pAtu; 
 pAtu = pAtu->prox; 
 } 
 novo->prox = pAtu; 
 if (pAnt != NULL){ 
 pAnt->prox = novo; 
 } 
 else{ 
 
 pList->prim = novo; 
 } 
 } 
 else{ 
 printf("Memória Insuficiente\n"); 
 } 
} 
 
void remEspecifico(ListaSimples *pList, int v){ 
 Ponto *pAtu, *pAnt; 
 pAnt = NULL; 
 pAtu = pList->prim; 
 while (pAtu != NULL && pAtu->info != v){ 
 pAnt = pAtu; 
 pAtu = pAtu->prox; 
 } 
 if (pAnt != NULL){ 
 if (pAtu != NULL) { 
 pAnt->prox = pAtu->prox; 
 free(pAtu); 
 printf("Valor removido\n"); 
 } 
 else{ 
 printf("Valor não encontrado\n"); 
 } 
 } 
 else{ 
 printf("Lista Vazia\n"); 
 } 
} 
 
void remTudo(ListaSimples *pList){ 
 Ponto *pAux = pList->prim; 
 if (pAux != NULL){ 
 
 while (pAux != NULL){ 
 pList->prim = pAux->prox; 
 free(pAux); 
 pAux = pList->prim; 
 } 
 printf("Todos os elementos foram removidos!\n"); 
 } 
 else{ 
 printf("Lista Vazia\n"); 
 } 
} 
 
void altElemento(ListaSimples *pList, int v1, int v2){ 
 Ponto *pAtu, *pAnt; 
 pAnt = NULL; 
 pAtu = pList->prim; 
 while (pAtu != NULL && pAtu->info != v1){ 
 pAnt = pAtu; 
 pAtu = pAtu->prox; 
 } 
 if (pAnt != NULL){ 
 if (pAtu != NULL){ 
 pAtu->info = v2; 
 printf("Valor alterado!\n"); 
 } 
 else{ 
 printf("Valor não encontrado.\n"); 
 } 
 } 
 else{ 
 printf("Lista Vazia.\n"); 
 } 
} 
 
 
int estaVazia(ListaSimples *pList) { 
 return(pList->prim == NULL); 
} 
 
void main(){ 
 setlocale(LC_ALL, "portuguese"); 
 ListaSimples minhaLista; 
 int valor, op, valorAlt; 
 criarLista(&minhaLista); 
 printf("AVA1 - ESTRUTURA DE DADOS\n"); 
 printf("MATHEUS GOMES\n\n"); 
 printf("Escolha uma opção:\n"); 
 while (1) { 
 printf("\n(1) Incluir elemento no início\n"); 
 printf("(2) Incluir elemento em ordem\n"); 
 printf("(3) Alterar elemento\n"); 
 printf("(4) Remover elemento do início\n"); 
 printf("(5) Remover elemento específico\n"); 
 printf("(6) Remover todos os elementos\n"); 
 printf("(7) Mostrar lista\n"); 
 printf("(0) Sair\n"); 
 scanf("%d", &op); 
 system("cls"); 
 switch (op) { 
 case 1: //Incluir elemento no início 
 printf("Valor: "); 
 scanf("%d", &valor); 
 insInicial(&minhaLista, valor); 
 break; 
 case 2: //Incluir elemento em ordem 
 printf("Valor: "); 
 scanf("%d", &valor); 
 insNaOrdem(&minhaLista, valor); 
 break; 
 
 case 3: //Alterar elemento 
 printf("Valor a ser alterado: "); 
 scanf("%d", &valor); 
 printf("Novo valor: "); 
 scanf("%d", &valorAlt); 
 altElemento(&minhaLista, valor, valorAlt); 
 break; 
 case 4: //Remover elemento do início 
 remInicial(&minhaLista); 
 break; 
 case 5: //Remover elemento específico 
 printf("Qual o valor? "); 
 scanf("%d", &valor); 
 remEspecifico(&minhaLista, valor); 
 break; 
 case 6: //Remover todos os elementos 
 remTudo(&minhaLista); 
 break; 
 case 7: //Mostrar lista 
 if (estaVazia(&minhaLista)) { 
 printf("Lista vazia!\n"); 
 } 
 else { 
 consultar(&minhaLista); 
 } 
 break; 
 case 0: //Sair 
 remTudo(&minhaLista); 
 exit(0); 
 default: 
 printf("Opção inexistente!\n"); 
 } 
 } 
}

Continue navegando

Outros materiais