Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

exemplo de pilha

Collapse
X
 
  • Filter
  • Tempo
  • Show
Clear All
new posts

  • Font Size
    #1

    C / C++ exemplo de pilha

    Fiz esse codigo na facu de pilha, pode ser util ai pra quem quiser estudar

    Código:
    #include<stdio.h>
    #include<stdlib.h>
    
    typedef struct tpilha{
    int valres[8];        
    int topo;
    };
    
    struct tpilha pi;
    
    int op;
    
    
    void menu();
    void inserir();
    void remover();
    void mostrar();
    void sair();
    
    main(){
      pi.topo = -1;
    
    while(1){
      menu();
      scanf(" %d",&op);
    
    switch(op){
    case 1:
         inserir();
         break;
         
    case 2:
         remover();
         break;
         
    case 3:
         mostrar();
         break;
         
    case 4:
         sair();
         break;
    }
    }       
    }
    
    void inserir(){
      if(pi.topo < 7){
         int v;
         system("cls");
         printf("Digite o valor: ");
         scanf(" %d",&v);
         pi.topo++;
         pi.valres[pi.topo] = v;
      }else{
         printf("Pilha cheia\n");
         system("pause");
      }
    }
    
    void remover(){
         pi.topo--;
         printf("Valor removido\n");
         system("pause");
    }
    
    void mostrar(){
         if(pi.topo != -1){
           for(int x=0; x < pi.topo + 1; x++){
               printf("%d    ",pi.valres[x]);    
           }           
         }
      system("pause");    
    }
    
    void menu(){
         system("cls");
         printf("\nMenu\n1. Inserir n° na pilha\n2. Inserir n° da pilha\n3. Mostrar elemetos na pilha\n4. Sair\n\nOpção: "); 
    }
    
    void sair(){
         exit(0);     
    }
    Last edited by Vetus; 04-04-2014, 14:31.





    Prove-me que és hacker... hacker que é hacker usa esta fan bar:

  • Font Size
    #2
    Tu não sabe usar a Tag [CODE] não Void_Witch !
    "Where there's a Shell, there is a way"

    Comment


    • Font Size
      #3
      Para ajudar quem quiser também

      Um código de pilha feito por mim. Talvez ajude também!


      Código:
      #include<stdio.h>
      #include<stdlib.h>
      #define TRUE 1
      #define FALSE 0
      
      typedef struct noPilha{
      	int valor;
      	struct noPilha *prox;
      }TStack;
      
      int Pop(TStack * *pilha);
      int isEmpty(TStack * pilha);
      int Top(TStack * pilha);
      void Push(TStack * *pilha,int valor);
      
      int main(){
      	TStack *minhaPilha = NULL;
      	int valor;
      	char op;
      	do{
      		printf("\n\n1 - EMPILHAR \n2 - DESEMPILHAR \n3 - EXIBIR TOPO \n0 - SAIR\n: ");
      		fflush(stdin);
      		op = getchar();
      		switch(op){
      		case '1': printf("\nVALOR: ");
      			scanf("%i",&valor);
      			Push(&minhaPilha,valor);
      			break;
      		case '2': if(isEmpty(minhaPilha)==FALSE)
      					  valor = Pop(&minhaPilha);
      			printf("\nVALOR EMPILHADO: %d \n",valor);
      			break;
      		case '3': if(isEmpty(minhaPilha)==FALSE)
      					  valor = Top(minhaPilha);
      			printf("\nVALOR DO TOPO: %d \n",valor);
      			break;
      		case '0': while(isEmpty(minhaPilha)==FALSE){
      			Pop(&minhaPilha);
      				  }
      				  break;
      		default: printf("\nOPCAO INVALIDA! \n");
      			break;
      		}
      	}while(op!='0');
      	return 0;
      }
      
      int Pop(TStack * *pilha){
      	TStack * aux;
      	int n;
      	aux = *pilha;
      	*pilha = (*pilha)->prox;
      	n = aux->valor;
      	free(aux);
      	return n;
      }
      
      int isEmpty(TStack * pilha){
      	if(pilha == NULL)
      		return TRUE;
      	else
      		return FALSE;
      }
      
      int Top(TStack * pilha){
      	return pilha->valor;
      }
      
      void Push(TStack * *pilha,int valor){
      	TStack * novo;
      	novo=(TStack *)malloc(sizeof(TStack));
      	novo->valor=valor;	
      	if(*pilha==NULL)
      		novo->prox=NULL;	
      	else
      		novo->prox=*pilha;
      	*pilha=novo;
      }
      Campanha Anti-Ripper: Você não gosta de rippers ("ladrões de coteúdo")? Use essa userbar e faça o seu protesto.

      Comment

      X
      Working...
      X