Advertisement
pablosoares

FilaVetorial

Apr 23rd, 2018
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.47 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. void inicia(int *top){
  5.     *top=-1;
  6.    
  7.     }
  8.    
  9. int cheia(int *top){
  10.    
  11.     if (*top==9) return 0;
  12.     else return 1;
  13.    
  14.     }
  15. int vazia(int *top){
  16.    
  17.     if (*top==-1) return 0;
  18.     else return 1;
  19.    
  20.     }
  21.    
  22. void add_first(int *vet,int *top,int valor){
  23.    
  24.     if (cheia(top));
  25.     *top=*top+1;
  26.     vet[*top]=valor;
  27.    
  28.     }
  29.    
  30. void add_top(int *vet,int *top,int valor){
  31.    
  32.     int cont1=0,cont2=0,aux;
  33.    
  34.     if (cheia(top));
  35.     *top=*top+1;
  36.     vet[*top]=valor;
  37.     cont2=*top;
  38.     cont1=cont2-1;
  39.     while(vet[0]!=valor){
  40.         aux=vet[cont2];
  41.         vet[cont2]=vet[cont1];
  42.         vet[cont1]=aux;
  43.         cont1--;
  44.         cont2--;
  45.         }
  46.     }
  47.  
  48. int retirar_inicio(int *vet,int *top){
  49.     int i,aux,x;
  50.     x=vet[0];
  51.     for(i=1;i<=*top;i++){
  52.         aux=vet[i-1];
  53.         vet[i-1]=vet[i];
  54.         vet[i]=aux;
  55.         }
  56.         *top=*top-1;
  57.         return x;
  58.     }
  59.    
  60. int retirar_fim(int *vet,int *top){
  61.     int x;
  62.     x=vet[*top];
  63.     *top=*top-1;
  64.     return x;
  65.     }
  66.    
  67. int especifico(int *vet,int *top,int valor){
  68.     int i,cont;
  69.     for(i=0;i<=*top;i++)
  70.         if(vet[i]==valor)cont=i;
  71.        
  72.     for (i=cont;i<*top;i++)
  73.          vet[i]=vet[i+1];
  74.        
  75.         *top=*top-1;
  76.     return valor;
  77.     }
  78.    
  79. void busca(int *vet,int *top,int valor){
  80.     int i,cont=-1;
  81.     for(i=0;i<=*top;i++)
  82.         if (vet[i]==valor)cont=i;
  83.    
  84.     if (cont==-1){
  85.         printf("Elmento nao encontrado.\n");
  86.         return;
  87.         }
  88.     else{
  89.         printf("\nElemento encontrado.\n");
  90.         for(i=0;i<cont;i++)printf("%d ",vet[i]);
  91.         printf("[%d] ",vet[cont]);
  92.         for(i=cont+1;i<=*top;i++)printf("%d ",vet[i]);
  93.         printf("\n");
  94.         }
  95.     }
  96.    
  97. void mostrar(int *vet,int *top){
  98.    
  99.     int i;
  100.     for (i=0;i<=*top;i++){
  101.         printf("%d ",vet[i]);
  102.         }
  103.         printf("\n");
  104.     }
  105.    
  106. int menu(){
  107.     int op;
  108.     printf(" ___________________________________________\n");
  109.     printf("|-------------------Menu--------------------|\n");
  110.     printf("|0-Sair                                     |\n");
  111.     printf("|1-Adicionar pelo Incio                     |\n");
  112.     printf("|2-Adicionar pelo Fim                       |\n");
  113.     printf("|3-Retirar elemento do inicio               |\n");
  114.     printf("|4-Retirar elemento do fim                  |\n");
  115.     printf("|5-Mostrar                                  |\n");
  116.     printf("|6-Remover numero especifico                |\n");
  117.     printf("|7-Busca                                    |\n");
  118.     printf("|___________________________________________|\n");
  119.     printf("Digite a Opcao: ");
  120.     scanf("%d",&op);
  121.     return op;
  122.     }
  123.    
  124. int main(){
  125. int vet[10],top,valor,op;
  126. inicia(&top);
  127. do{
  128.      op=menu();
  129.      
  130.      switch (op){
  131.          case 0: break;
  132.          case 1:
  133.                 printf("Digite um valor: ");
  134.                 scanf("%d",&valor);
  135.                 add_top(vet,&top,valor);
  136.                 break;
  137.           case 2:
  138.                 printf("Digite um valor: ");
  139.                 scanf("%d",&valor);
  140.                 add_first(vet,&top,valor);
  141.                 break;
  142.           case 3:
  143.                 printf("Numero deletado: %d\n",retirar_inicio(vet,&top));
  144.                 break;
  145.           case 4:
  146.                printf("Numero deletado: %d\n",retirar_fim(vet,&top));  
  147.                 break;
  148.           case 5:
  149.                 mostrar(vet,&top);
  150.                 break;
  151.           case 6:
  152.                 printf("Digite o numero a deletar: ");
  153.                 scanf("%d",&valor);
  154.                 printf("\nNumero deletado: %d\n",especifico(vet,&top,valor));
  155.                 break;
  156.            case 7:
  157.                 printf("Digite o numero que deseja buscar: ");
  158.                 scanf("%d",&valor);
  159.                 busca(vet,&top,valor);
  160.                  break;
  161.           default:
  162.                 printf("Opcao invalida\n");
  163.                 break;
  164.                  
  165.          }
  166.          system("pause");
  167.          system("cls");
  168.  }while(op!=0);
  169. return 0;
  170. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement