You are on page 1of 3

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

#include <stdio.h> #include <conio.h> #include <stdlib.h> struct no { int info; struct no *prox; }; struct no *criaNo() { struct no *aux; aux = (struct no *)malloc(sizeof(struct no)); if(aux==NULL) { printf("\nSem espao na memria"); system("pause"); exit(0); } return aux; } struct no *primeiraInsercao(struct no *ini,int item) { struct no *aux = criaNo(); aux->info=item; aux->prox=NULL; ini = aux; return ini; } struct no *insereInicio(struct no *ini, int item) { struct no *aux = criaNo(); aux->info=item; aux->prox=ini; ini=aux; return ini; } struct no *insereFim(struct no *ini, int item) { struct no *aux2; struct no *aux = criaNo(); aux->info=item; aux->prox=NULL; aux2=ini; while(aux2->prox!=NULL) aux2=aux2->prox; //andar com aux2 aux2->prox=aux; return ini; } struct no *insereInterior(struct no *ini, int item) { struct no *aux2; struct no *aux = criaNo(); aux->info=item; aux2=ini; while(item>=aux2->prox->info) aux2=aux2->prox; aux->prox=aux2->prox; aux2->prox=aux; return ini; } struct no*ultimaRemocao(struct no *ini) { free(ini); ini = NULL; return ini;

67 } 68 struct no *removeInicio(struct no*ini) 69 { 70 struct no *aux; 71 aux = ini->prox; 72 free(ini); 73 ini = aux; 74 return ini; 75 struct no *removeFim(struct no*ini) 76 { 77 struct no *aux; 78 aux = ini; 79 while(aux->prox->prox!=NULL) 80 aux = printf("O numero digitado no esta na lista");aux->prox; 81 free(aux->prox); 82 aux->prox=NULL; 83 return ini; 84 } 85 } 86 struct no *removeInterior(struct no*ini,int item) 87 { 88 struct no *aux, *aux2; 89 aux=ini; 90 while(aux->prox->info != item) 91 aux = aux->prox; 92 aux2=aux->prox; 93 free(aux2); 94 return ini; 95 } 96 97 98 int main (int argc, char *argv[]) 99 { 100 struct no *ini,*aux; 101 char resp; 102 int item, proc, achou=0,conta=0; 103 ini = NULL; 104 do 105 { 106 system("cls"); 107 printf("\nDigite um valor inteiro: "); 108 scanf("%d",&item); 109 if(ini==NULL)//primeira insero 110 ini = primeiraInsercao(ini,item); 111 else if(item<ini->info)//insere no incio 112 ini=insereInicio(ini,item); 113 else 114 { 115 aux=ini; 116 117 while(aux->prox!=NULL) 118 if(aux->prox->info<item) 119 aux=aux->prox;//andar com aux 120 else 121 break; 122 if(aux->prox==NULL) 123 124 ini=insereFim(ini,item); 125 126 else 127 ini=insereInterior(ini,item); 128 } 129 printf("\nDeseja digitar novamente? (s/n)"); 130 fflush(stdin); 131 scanf("%c",&resp);

132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177

} while((resp=='s')||(resp=='S')); //EXIBIO DA LISTA aux=ini; printf("\n"); printf("\n Os elementos da Lista so:"); while(aux!=NULL) { printf("Item %d\n",aux->info); aux=aux->prox; } printf("\n Digite um nmero\n"); scanf("%d",&proc); aux=ini; while(aux!=NULL) { conta++; if(aux->info==proc){ printf("o nmero esta na posio %d\n",conta); achou=1; break; } aux=aux->prox; //pedir para o usuario digitar um numero //fazer aux=ini //perguntar se o aux igual ao numero digitado //criar um cont no main igual a zero //achar a posio na lista } if(achou==0) printf("O numero digitado no esta na lista"); system("PAUSE"); return EXIT_SUCCESS; }

You might also like