Advertisement
pablosoares

par impar

Oct 22nd, 2018
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.45 KB | None | 0 0
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3.  
  4. typedef struct no {
  5.    
  6.        int dados;
  7.        struct no *prox;
  8.  
  9. }noptr;
  10.  
  11. noptr *inicio,*par,*impar;
  12.  
  13. void insere_lista(noptr *novo, int valor);
  14. void insere_listaPar(noptr *novo, int valor);
  15. void insere_listaImpar(noptr *novo, int valor);
  16. void lista_todos();
  17. void lista_todosPar();
  18. void lista_todosImpar();
  19. void remove_lista();
  20. void verifica();
  21.  
  22. int main(){
  23.    
  24.     int recebe=-1;
  25.  
  26.     inicio=NULL;
  27.     par=NULL;
  28.     impar=NULL;
  29.    
  30.     noptr *info;
  31.  
  32.         do{
  33.            
  34.              printf("Digite um valor:");
  35.              
  36.              
  37.              scanf("%d",&recebe);
  38.              
  39.              if(recebe!=0){
  40.                  
  41.                 info=(struct no *) malloc(sizeof(noptr));
  42.                
  43.                 if(!info){
  44.                    
  45.                    printf("\nSem Memoria!!!");
  46.                    return 0;
  47.                    
  48.                    }
  49.                    
  50.                  insere_lista(info,recebe);
  51.  
  52.                }
  53.                
  54.             }while(recebe!=0);
  55.    
  56. lista_todos();
  57. verifica();
  58. lista_todosImpar();
  59. lista_todosPar();
  60.  
  61.  
  62.  return 0;
  63.  
  64. }
  65.  
  66.  
  67. void insere_lista(noptr *novo, int valor){
  68.    
  69.     noptr *p;
  70.    
  71.     novo->dados=valor;
  72.     novo->prox = NULL;
  73.    
  74. if(inicio==NULL) inicio=novo;
  75.  
  76. else{
  77.    
  78.     p=inicio;
  79.    
  80.     while(p->prox!=NULL) p=p->prox;
  81.        
  82.        p->prox=novo;
  83.  
  84.      }
  85.      
  86. }
  87.  
  88. void insere_listaPar(noptr *novo, int valor){
  89.    
  90.     noptr *p;
  91.    
  92.     novo->dados=valor;
  93.     novo->prox = NULL;
  94.    
  95. if(par==NULL) par=novo;
  96.  
  97. else{
  98.    
  99.     p=par;
  100.    
  101.     while(p->prox!=NULL) p=p->prox;
  102.        
  103.        p->prox=novo;
  104.  
  105.      }
  106.      
  107. }
  108.  
  109. void insere_listaImpar(noptr *novo, int valor){
  110.    
  111.     noptr *p;
  112.    
  113.     novo->dados=valor;
  114.     novo->prox = NULL;
  115.    
  116. if(impar==NULL) impar=novo;
  117.  
  118. else{
  119.    
  120.     p=impar;
  121.    
  122.     while(p->prox!=NULL) p=p->prox;
  123.        
  124.        p->prox=novo;
  125.  
  126.      }
  127.      
  128. }
  129.  
  130. void remove_lista(){
  131.    
  132. noptr *p, *ant;
  133.  
  134. if(inicio==NULL){
  135.    
  136.    printf("\nLista Vazia!!!");
  137.    return;
  138.    
  139. }
  140.  
  141. else{
  142.    
  143.     while(p!=inicio){
  144.        
  145.     p=inicio;
  146.    
  147.     while(p->prox){
  148.        
  149.          ant=p;
  150.          p=p->prox;
  151.          
  152.          }
  153.          
  154.       ant->prox=NULL;
  155.      
  156.       printf("\nValo: %d",p->dados);
  157.       free(p);
  158.  
  159.      }
  160.  
  161.      inicio = NULL;
  162.  
  163.     }
  164. }
  165.  
  166.  
  167.  
  168. void lista_todosPar(){
  169.    
  170.      if(par==NULL) {
  171.          
  172.         printf("\nLista Vazia!!!");
  173.        
  174.         return;
  175.        
  176.        }
  177.        
  178.     noptr *p;
  179.     p = par;
  180.    
  181. while(p) {
  182.    
  183.      printf("\nSaida: %d",p->dados);
  184.      p = p->prox;
  185.      
  186.   }
  187.  
  188. printf("\n");
  189.  
  190. }
  191.  
  192.  
  193. void lista_todosImpar(){
  194.    
  195.      if(impar==NULL) {
  196.          
  197.         printf("\nLista Vazia!!!");
  198.        
  199.         return;
  200.        
  201.        }
  202.        
  203.     noptr *p;
  204.     p = impar;
  205.    
  206. while(p) {
  207.    
  208.      printf("\nSaida: %d",p->dados);
  209.      p = p->prox;
  210.      
  211.   }
  212.  
  213. printf("\n");
  214.  
  215. }
  216. void lista_todos(){
  217.    
  218.      if(inicio==NULL) {
  219.          
  220.         printf("\nLista Vazia!!!");
  221.        
  222.         return;
  223.        
  224.        }
  225.        
  226. noptr *p;
  227. p = inicio;
  228. while(p) {
  229.    
  230.      printf("\nSaida: %d",p->dados);
  231.      p = p->prox;
  232.      
  233.   }
  234.  
  235. printf("\n");
  236.  
  237. }
  238.  
  239.  
  240.  
  241. void verifica(){
  242.    
  243.          if(inicio==NULL) {
  244.          
  245.         printf("\nLista Vazia!!!");
  246.        
  247.         return;
  248.        
  249.        }
  250.        
  251.     noptr *p;
  252.     p = inicio;
  253.    
  254. while(p) {
  255.          
  256.       noptr *x=(struct no *) malloc(sizeof(noptr));
  257.            
  258.      if(p->dados%2==0){
  259.    
  260.          insere_listaPar(x,p->dados);
  261.          
  262.          }
  263.          
  264.       else{
  265.           insere_listaImpar(x,p->dados);
  266.          
  267.           }
  268.          
  269.      p = p->prox;
  270.      
  271.   }
  272.  
  273. printf("\n");
  274.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement