TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

A Estrutura de Dados Fatec

Por:   •  1/10/2022  •  Trabalho acadêmico  •  3.023 Palavras (13 Páginas)  •  110 Visualizações

Página 1 de 13

1) Usando o conceito de pilha, carregue uma pilha com 10 elementos do tipo real e imprima posteriormente a saída destes elementos. 

#include <stdio.h>

struct Pilha {

        int topo;

        int capa;

        float *pElem;

};

void criarpilha( struct Pilha *p, int c ){

   p->topo = -1;

   p->capa = c;

   p->pElem = (float*) malloc (c * sizeof(float));

}

int estavazia ( struct Pilha *p ){

   if( p-> topo == -1 )

      return 1;   // true

   else

      return 0;   // false

}

int estacheia ( struct Pilha *p ){

        if (p->topo == p->capa - 1)

                return 1;

        else

                return 0;

}

void empilhar ( struct Pilha *p, float v){

        p->topo++;

        p->pElem [p->topo] = v;

}

float desempilhar ( struct Pilha *p ){

   float aux = p->pElem [p->topo];

   p->topo--;

   return aux;

}

float retornatopo ( struct Pilha *p ){

   return p->pElem [p->topo];

}

int main(){

        struct Pilha minhapilha;

        int capacidade = 10, op;

        float valor;

        criarpilha (&minhapilha, capacidade);

        while( 1 ){ /* loop infinito */

                printf("\n1- empilhar (push)\n");

                printf("2- desempilhar (POP)\n");

                printf("3- Mostrar o topo \n");

                printf("4- sair\n");

                printf("\nopcao? ");

                scanf("%d", &op);

                switch (op){

                        case 1: //push

                                if( estacheia( &minhapilha ) == 1 )

                                        printf("\nPILHA CHEIA! \n");

                                else {

                                        printf("\nVALOR? ");

                                        scanf("%f", &valor);

                                        empilhar (&minhapilha, valor);

                                }

                                break;

                        case 2: //pop

                                if ( estavazia(&minhapilha) == 1 )

                                        printf( "\nPILHA VAZIA! \n" );

                                else{

                                        valor = desempilhar (&minhapilha);

                                        printf ( "\n%.1f DESEMPILHADO!\n", valor );

                                }

                                break;

                        case 3: // mostrar o topo

                                if ( estavazia (&minhapilha) == 1 )

                                        printf( "\nPILHA VAZIA!\n" );

                                else {

                                        valor = retornatopo (&minhapilha);

                                        printf ( "\nTOPO: %.1f\n", valor );

                                }

                                break;

                        case 4:

                                exit(0);

                        default: printf( "\nOPCAO INVALIDA! \n" );

                }

        }

}

2) Implemente um algoritmo usando pilha que faça a conversão de um número da base decimal para a base binária. Exemplo clássico.  

[pic 1][pic 2][pic 3][pic 4][pic 5][pic 6][pic 7][pic 8][pic 9][pic 10][pic 11][pic 12][pic 13]35     2              
1        17          2   
           1            8            2   
                         0            4          2   
                                       0           2        2   
                                                    0         1 

...

Baixar como (para membros premium)  txt (8.4 Kb)   pdf (63.9 Kb)   docx (151.9 Kb)  
Continuar por mais 12 páginas »
Disponível apenas no TrabalhosGratuitos.com