Estrutura de dados
2. #include
3. #include
4. #include
5.
6. struct lista {
7. int info; //armazena informação (número inteiro)
8. struct lista* prox; //ponteiro que aponta para uma próxima estrutura do mesmo tipo
9. };
10. typedef struct lista Lista;
11.
12. Lista* inicializa (void) //função que inicializa a lista vazia com return null
13. {
14. return NULL;
15. }
16.
17. Lista* insere (Lista* l, int i) //função para inserir elemento
18. {
19. Lista* novo = (Lista*) malloc(sizeof(Lista)); //aloca um novo elemento que caiba uma lista
20. novo->info = i; //insere um valor int
21. novo->prox = l; //quarda o valor da posição de memória
22. return novo;
23. }
24. void imprime (Lista* l)
25. {
26. Lista* aux; //variável auxiliar para percorrer a lista
27. for (aux = l; aux != NULL; aux = aux->prox) //aux recebe lista principal e enquanto aux não apontar para null há elementos na lista
28. printf("info = %d\n", aux->info); //mostra os valores (info) da lista
29.
30. }
31.
32.
33. void pesquisa(Lista* l, int num){ //função para pesquisar elemento na lista
34. if (l == NULL){ //verifica se a lista está vazia
35. printf("LISTA VAZIA!!");
36. getch();
37. return; //se a lista estiver vazia sai da função
38. }
39. Lista* aux; //cria lista auxiliar
40. for(aux = l; aux != NULL; aux = aux->prox){
41. if(num == aux->info){ //compara elemento da lista com o elemento pesquisado
42. printf("Numero Encontrado!"); //se o elemento, se encontrar na lista mostra mensagem que o número foi encontrado
43. getch();
44. return; //sai da função
45. }
46.
47. }
48. printf("Numero Nao Encontrado!"); //se o elemento não está na lista, mostra mensagem que o número não foi encontrado
49. getch();
50. }
51. void apresentarLista(Lista* l){ //mostra todos elementos da lista
52. if (l == NULL){ //verifica se a lista está vazia
53. printf("LISTA VAZIA!!");
54. getch();
55. return; //se a lista