示例#1
0
void main()
{
    int no, ch, e;

    printf("\n 1 - Push");
    printf("\n 2 - Pop");
    printf("\n 3 - Top");
    printf("\n 4 - Empty");
    printf("\n 5 - Exit");
    printf("\n 6 - Dipslay");
    printf("\n 7 - Stack Count");
    printf("\n 8 - Destroy stack");

    create();

    while (1)
    {
        printf("\n Enter choice : ");
        scanf("%d", &ch);

        switch (ch)
        {
        case 1:
            printf("Enter data : ");
            scanf("%d", &no);
            push(no);
            break;
        case 2:
            pop();
            break;
        case 3:
            if (top == NULL)
                printf("No elements in stack");
            else
            {
                e = topelement();
                printf("\n Top element : %d", e);
            }
            break;
        case 4:
            empty();
            break;
        case 5:
            exit(0);
        case 6:
            display();
            break;
        case 7:
            stack_count();
            break;
        case 8:
            destroy();
            break;
        default :
            printf(" Wrong choice, Please enter correct choice  ");
            break;
        }
    }
}
示例#2
0
文件: main.c 项目: edgardpn/ED_2014
void main(){
	int op,n,resp;
	system("clear");
	printf("|_____________Estrutura de dados_____________|\n");
	printf("|                TDA - PILHA                 |\n");
	printf("|Alunos:                                     |\n");
	printf("| Alessandro Silva                           |\n");	
	printf("| Alexandre Leite                            |\n");
	printf("| Edgard Pitombo                             |\n");
	printf("| Roberto R.                                 |\n");
	printf("|                                            |\n");
	printf("|Professor: Danilo silva                     |\n");
	printf("| 	                           06/11/2014|\n");
	printf("|____________________________________________|\n\n");
	printf("_--__--__--__--__--__--__--__--__--__--__--__-\n\n");	
	
	while(op!=9){
	printf("\n");
	printf("|__________________MENU______________________|\n");
	printf("|                                            |\n");
	printf("| 1)ADICIONAR elemento na pilha.             |\n");	
	printf("| 2)REMOVER elemento do topo da pilha.       |\n");
	printf("| 3)Exibir TODOS os elementos da pilha.      |\n");
	printf("| 4)Exibir o elemento do TOPO da pilha.      |\n");
	printf("| 5)Exibir QUANTIDADE de elementos da pilha. |\n");
	printf("| 6)LOCALIZAR um elemento na pilha.          |\n");
	printf("| 9)Para SAIR.	                             |\n");
	printf("|____________________________________________|\n");
	printf("\nDigite uma opção: ");
	scanf("%d",&op);
	
	if(op!=9){
		switch(op){
			case 1:
				printf("Digite um valor inteiro:");
				scanf("%d",&n);
				if(push(n)==1){
                                    printf("Valor inserido na pilha.");
                                    display();
                                }else{
                                    printf("Falha ao armazenar valor na pilha.");
                                }
				break;
			case 2:
                            resp=pop();
                            if(resp!=0){
				printf("\nO elemento removido foi: %d \n", resp);
                                display();
                            }else{
                                printf("A pilha está vazia!");
                            }
				break;
			case 3:
				display();
				break;
		
			case 4:
				printf("\nO elemento do topo da pilha é: %d\n",topelement());
                                display();
				break;
			case 5:
				printf("\nPilha possui %d elementos\n", stack_count());
                                display();
				break;
			case 6:
				printf("Digite o elemento que deseja procurar: ");
				scanf("%d",&n);
				localiza(n);
                                display();
				break;

		}
	}
}
}
int main()
{
    int  i , j=0 , chk ;
    int  popped , pre , prep;
    char ele , elem;
    strcpy(postfix," ");

    printf("\nEnter the infix expression :");
    gets(infix);

    chk = braces(infix);
    if(chk!=0)
    {
        printf("\nUnbalanced no. of braces");
        printf("\n Extra %s" , (chk==1 ? "right bracrs" : "left braces"));
        getch();
        exit(1);
    }

        for(i=0 ; infix[i]!='\0' ; i++)
        {
            if(infix[i]!='(' &&infix[i]!=')' &&infix[i]!='/' &&infix[i]!='*' &&infix[i]!='+' &&infix[i]!='-' && infix[i]!='^')
            postfix[j++]=infix[i];
            else if(infix[i]=='(')
                    {
                        elem= infix[i];
                        push(elem);
                    }
            else if(infix[i]==')')
            {
                while((popped=pop())!='(')
                      postfix[j++] = popped;
            }
            else
            {
                elem=infix[i];
                pre=precedence(elem);
                ele=topelement();
                prep=precedence(ele);
                if(pre>prep)
                push(elem);
                else
                {
                    while(prep>=pre)
                    {
                        if(ele=='#')
                        break;
                        popped=pop();
                        postfix[j++]=popped;
                        ele=topelement();
                        prep=precedence(ele);
                    }
                    push(elem);
                }
            }
        }
      while((popped=pop())!='#')
      postfix[j++] = popped;
      postfix[j]='\0';
      printf("\nThe postfix expression is : ");
      puts(postfix);

    return 0;
}