Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdlib.h>
- #include <stdio.h>
- typedef struct no {
- int dados;
- struct no *prox;
- }noptr;
- noptr *inicio,*par,*impar;
- void insere_lista(noptr *novo, int valor);
- void insere_listaPar(noptr *novo, int valor);
- void insere_listaImpar(noptr *novo, int valor);
- void lista_todos();
- void lista_todosPar();
- void lista_todosImpar();
- void remove_lista();
- void verifica();
- int main(){
- int recebe=-1;
- inicio=NULL;
- par=NULL;
- impar=NULL;
- noptr *info;
- do{
- printf("Digite um valor:");
- scanf("%d",&recebe);
- if(recebe!=0){
- info=(struct no *) malloc(sizeof(noptr));
- if(!info){
- printf("\nSem Memoria!!!");
- return 0;
- }
- insere_lista(info,recebe);
- }
- }while(recebe!=0);
- lista_todos();
- verifica();
- lista_todosImpar();
- lista_todosPar();
- return 0;
- }
- void insere_lista(noptr *novo, int valor){
- noptr *p;
- novo->dados=valor;
- novo->prox = NULL;
- if(inicio==NULL) inicio=novo;
- else{
- p=inicio;
- while(p->prox!=NULL) p=p->prox;
- p->prox=novo;
- }
- }
- void insere_listaPar(noptr *novo, int valor){
- noptr *p;
- novo->dados=valor;
- novo->prox = NULL;
- if(par==NULL) par=novo;
- else{
- p=par;
- while(p->prox!=NULL) p=p->prox;
- p->prox=novo;
- }
- }
- void insere_listaImpar(noptr *novo, int valor){
- noptr *p;
- novo->dados=valor;
- novo->prox = NULL;
- if(impar==NULL) impar=novo;
- else{
- p=impar;
- while(p->prox!=NULL) p=p->prox;
- p->prox=novo;
- }
- }
- void remove_lista(){
- noptr *p, *ant;
- if(inicio==NULL){
- printf("\nLista Vazia!!!");
- return;
- }
- else{
- while(p!=inicio){
- p=inicio;
- while(p->prox){
- ant=p;
- p=p->prox;
- }
- ant->prox=NULL;
- printf("\nValo: %d",p->dados);
- free(p);
- }
- inicio = NULL;
- }
- }
- void lista_todosPar(){
- if(par==NULL) {
- printf("\nLista Vazia!!!");
- return;
- }
- noptr *p;
- p = par;
- while(p) {
- printf("\nSaida: %d",p->dados);
- p = p->prox;
- }
- printf("\n");
- }
- void lista_todosImpar(){
- if(impar==NULL) {
- printf("\nLista Vazia!!!");
- return;
- }
- noptr *p;
- p = impar;
- while(p) {
- printf("\nSaida: %d",p->dados);
- p = p->prox;
- }
- printf("\n");
- }
- void lista_todos(){
- if(inicio==NULL) {
- printf("\nLista Vazia!!!");
- return;
- }
- noptr *p;
- p = inicio;
- while(p) {
- printf("\nSaida: %d",p->dados);
- p = p->prox;
- }
- printf("\n");
- }
- void verifica(){
- if(inicio==NULL) {
- printf("\nLista Vazia!!!");
- return;
- }
- noptr *p;
- p = inicio;
- while(p) {
- noptr *x=(struct no *) malloc(sizeof(noptr));
- if(p->dados%2==0){
- insere_listaPar(x,p->dados);
- }
- else{
- insere_listaImpar(x,p->dados);
- }
- p = p->prox;
- }
- printf("\n");
- }
Add Comment
Please, Sign In to add comment