Teste
UNOESC – Unidade Chapecó
CURSO DE SISTEMAS DE INFORMAÇÃO |[pic] | |
|Disciplina: Estrutura de Dados – ESD |Fase: 2ª fase |Prof: Tiago Zonta |
PILHAS COM PASSAGEM DE VALOR
#include
#include
#include
#define FF fflush(stdin)
#define parar system("pause")
#define MAX 5
#define VAZIA -1
#define CHEIA MAX-1
//Aqui é determinado o conteúdo da pilha, ou seja, o que ela vai armazenar em cada nodo. struct Info{ int COD; char NOME[50];
};
//Aqui é montada a estrutura de dados, a pilha deverá ter o seu controle de MAX valores struct ESDPilha{ int TOPO; struct Info NODO[MAX];
};
//Aqui e declarada a variável que irá armazenar o valor retirado struct Info Retirado;
/*Se quiser você poderá criar um tipo de dado para não precisar ficar utiliza struct PILHA toda a vez que for trabalhar com a esturtura*/ typedef struct ESDPilha Pilha;
Pilha Cria();
Pilha PUSH(Pilha P,struct Info Valor);
Pilha POP(Pilha P);
Pilha Cria ()
{
Pilha P; P.TOPO = VAZIA;//Delimitador de pilha vazia return P;
}
Pilha PUSH(Pilha P,struct Info Valor)
{
if(P.TOPO == CHEIA) printf("PILHA CHEIA!!!!!!\n"); else { P.TOPO++; //Diferente dos exemplos até então está sendo utilizado o armazenamento de uma struct P.NODO[P.TOPO] = Valor; } return P;
}
Pilha POP(Pilha P)
{
if (P.TOPO == VAZIA) printf("PILHA VAZIA!!!!!!\n"); else { //Diferente dos exemplos até então está sendo utilizado o armazenamento de uma struct Retirado = P.NODO[P.TOPO]; P.TOPO--; } return P;
}
int main()
{
struct Info VALOR; Pilha P; P = Cria(); //Informa os valores que vão ser inseridos na Pilha printf ("Entre com o codigo: "); scanf("%d",&VALOR.COD); FF; printf ("Entre com o nome: "); gets(VALOR.NOME); FF; P = PUSH(P,VALOR);