Pilhas em c e c++

Disponível somente no TrabalhosFeitos
  • Páginas : 2 (476 palavras )
  • Download(s) : 0
  • Publicado : 15 de junho de 2012
Ler documento completo
Amostra do texto
#include
#include
#include
#define N 3
//Criação da Estrutura "Pilha"
struct pilha
{
int topo;
char nomes [N][10];
};//No final de toda struct deve ter ponto-e-virgula (;)//Função para criar a pilha
pilha criar_pilha()
{
pilha p; //damos o nome da pilha para "P"
p.topo= -1; //atribuo o valor -1 (vazio) para o topo da pilha
return p; //atualizo "p" (pilha "p"vazia)
}
//função que serve apenas para verificar se a pilha está vazia
int pilha_vazia (pilha p) //recebe o valor de p (vazio ou não)
{
if (p.topo==-1) //caso seja =-1(vazio) retorne"verdadeiro", caso não, "falso"
return true;
return false;
}
/*função parecida com a da função acima, mas esse serve para ver se a pilha
está cheia*/
int pilha_cheia (pilha p)
{
if (p.topo==N-1)/*se p.topo(indice do topo da nossa pilha "p") for = N-1
significa que o topo está cheio*/
return true;
return false;
}
/*função que serve para empilhar
p está sendo passado porreferência "&p",
está sendo uma variável string "val" para receber os nomes a serem empilhados */
int push (pilha &p, char val[50])
{
if (p.topo==N-1)
return false;
/*este "IF" acima serve paraver se a pilha está cheia, caso sim, retorna Falso
e pára a execução da function*/
p.topo++;//acrescenta um ao topo da pilha "p"
strcpy(p.nomes [p.topo], val);
/*este comando strcpy (stringcopy) serve para copiar um string para outra,
neste caso, de string "val" para p.nomes[numero do topo]*/
//na copia de strings em C++ (strcpy),é invertido do MS-DOS (destino, origem)
return true;}
//Função que serve para desepilhar
int pop (pilha &p)
{
if (p.topo==-1)
//Se pilha estiver vazia (=-1), então retorne falso e encerre o modulo
return false;
p.topo—; //desempilha 1por 1
return true;
}
//Função para receber o valor desempilhado pela função anterior
int top (pilha p, char val[50])
{
if (pilha_vazia (p)==true)//caso a pilha esteja vazia, encerre o...
tracking img