Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- struct cel
- {
- int dado;
- struct cel *NEXT;
- };
- typedef struct cel cel;
- cel *Penultimo(cel**);
- cel *Novo(void);
- void Adiciona(cel**,cel**);
- void ver(cel*);
- void clrscr(void);
- char *Descarrega(cel**);
- void Sair(cel**);
- //void *Deleta(cel**);
- //void varrer(cel**);
- int main()
- {
- cel *dado,*fim;
- fim = NULL;
- dado = NULL;
- char opc,*resp;
- do
- {
- clrscr();
- printf("Escolha:\t[I]nserir\t[V]er\t\033[37m\033[40m[R]emover\033[0;0m\t[S]air\n# ");
- scanf("%c",&opc);
- switch(opc)
- {
- case 'i':
- case 'I': Adiciona(&dado,&fim);
- case 'v':
- case 'V': ver(dado); break;
- case 'r':
- case 'R': break;
- case 's':
- case 'S': Sair(&dado); return 0;
- }
- }while(1);
- return 1;
- }
- cel *Penultimo(cel **dado)
- {
- if((*dado)->NEXT != NULL)
- {
- Penultimo(&(*dado)->NEXT);
- }
- else return (*dado);
- }
- cel *Novo()
- {
- #include<stdlib.h>
- cel *dado;
- dado = (cel *) malloc(sizeof(cel));
- printf("Valor: ");
- scanf("%d",&dado->dado);
- dado->NEXT = NULL;
- return dado;
- }
- /*void Adiciona(cel **dado)
- {
- if(!(*dado))
- {
- (*dado) = Novo();
- }
- else if((*dado)->NEXT != NULL)
- {
- Adiciona(&(*dado)->NEXT);
- }
- else
- {
- (*dado)->NEXT = Novo();
- }*/
- void Adiciona(cel **inicio,cel **fim)
- {
- cel *novo;
- novo = Novo();
- if(!(*inicio))
- {
- (*inicio) = novo;
- (*fim) = (*inicio);
- }
- else
- {
- (*fim) = Penultimo(&(*inicio));
- if(novo->dado < (*inicio)->dado)
- {
- novo->NEXT = (*inicio);
- (*inicio) = novo;
- }
- else if(novo->dado > (*fim)->dado)
- {
- (*fim)->NEXT = novo;
- }
- else
- {
- cel *anterior,*aux;
- aux = (*inicio);
- while(novo->dado > aux->dado)
- {
- anterior = aux;
- aux = aux->NEXT;
- }
- anterior->NEXT = novo;
- novo->NEXT = aux;
- }
- }
- return;
- }
- // return;
- //}
- void ver(cel *dado)
- {
- if(dado != NULL)
- {
- printf("%d\t",dado->dado);
- ver(dado->NEXT);
- }
- scanf("%*c");
- return;
- }
- #include<stdlib.h>
- void clrscr()
- {
- #ifdef WIN32
- system("cls");
- #else
- system("clear");
- #endif
- }
- char *Descarrega(cel **inicio)
- {
- cel *aux;
- if((*inicio)!= NULL)
- {
- putchar('.');
- aux = (*inicio);
- (*inicio) = (*inicio)->NEXT;
- free(aux);
- Descarrega(&(*inicio));
- }
- else
- {
- return "\nSucesso!";
- }
- return;
- }
- void Sair(cel **inicio)
- {
- printf("Saindo");
- printf("%s",Descarrega(&(*inicio)));
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement