Oi pessoal, estou publicando um dos exercícios da prova de Estrutura de Dados sobre listas dinâmicas que fiz em parceria com meu amigo Thiago Castello que é fera em linguagem C.
segue o código.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 | #include <stdio.h> //carrega as bibliotecas #include <stdlib.h> //declaracao da lista struct No{ int valor; struct No * prox; }; struct No * Lista; int main (void){ Lista = NULL; int opcao; int x; do { printf ("nn Digite a opcao desejada:"); printf ("n 1-inserir "); printf ("n 2-remover "); printf ("n 3-buscar "); printf ("n 4-Sair do programa nn"); scanf ("%d", &opcao); switch (opcao){ case 1: { printf ("nDigite o preco: "); scanf ("%d", &x); struct No * aux= (struct No *) malloc (sizeof (struct No)); aux -> valor = x; aux-> prox = Lista; Lista =aux; printf ("n preco adicionado!n"); break; } case 2: //remover { printf ("npreco a ser removido"); scanf ("%d", &x); struct No * aux; struct No * ant; aux = Lista; ant = NULL; while (aux != NULL){ if (aux->valor == x){ if (aux == Lista) { Lista = aux->prox; } else{ ant->prox= aux-> prox; } printf ("nRemovido com sucesso!"); break; } else{ ant = aux; aux = aux ->prox; } } } break; case 3 : //buscar { int vlbusca; printf("digite o valor da busca:"); scanf("%d",&vlbusca); struct No * aux; aux= Lista; while (aux != NULL) { if(aux->valor == vlbusca) { printf ("n o valor existe:", vlbusca); } else { printf ("n o valor nao existe:", vlbusca); } aux = aux -> prox; } break; } case 4: { break; } } //fim do switch } while (opcao != 4); //sair do programa } |
Para implementar editar e criar o executavel indico o programa Dev-C++ que pode sei baixado atraves de um dos links abaixo.
http://www.baixaki.com.br/download/dev-c-.htm
http://www.bloodshed.net/devcpp.html
O Dev-C++ é gratuito e de código aberto
muito obrigado seu código é simples porem eficaz, gostaria de ver em funçoes com as opçoes de inserir no meio e fim da lista, se possivel. desde já muito obrigado