A Estrutura de Dados Fatec
Por: Nando Lopes • 1/10/2022 • Trabalho acadêmico • 3.023 Palavras (13 Páginas) • 143 Visualizações
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
...