Advertisement
pablosoares

FilaVetorialOrdenada

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