v = array(); $this->topo = 0; $this->maximo = 3; } /** * Empilha * * Empilha um elemento na pilha * * @param mixed $elemento Elemento a ser empilhado * @access public * @return void Nao retorna nenhum valor **/ function Empilha($elemento) { if ($this->EstaCheia()) { echo 'A pilha esta cheia!'; } else { array_push($this->v, $elemento); $this->topo = $this->topo + 1; } } /** * Desempilha * * Desempilha um elemento da pilha * * @access public * @return mixed Elemento desempilhado **/ function Desempilha() { if ($this->EstaVazia()) { echo 'A pilha esta vazia'; } else { $this->topo = $this->topo - 1; return array_pop($this->v); } } /** * EstaCheia * * Verifica se a pilha esta cheia * * @access public * @return bool TRUE se a pilha esta cheia, senao FALSE **/ function EstaCheia() { if ($this->topo == $this->maximo) { return TRUE; } else { return FALSE; } } /** * EstaVazia * * Verifica se a pilha esta vazia * * @access public * @return bool TRUE se a pilha esta vazia, senao FALSE **/ function EstaVazia() { if (empty($this->v)) { return TRUE; } else { return FALSE; } } /** * MostraElementos * * Mostra todos os elementos da pilha * * @access public * @return void Nao retorna nenhum valor **/ function MostraElementos() { foreach ($this->v as $elemento) { echo $elemento . "\n"; } } } /* // Exemplo de uso: // inicializa a pilha $p = new Pilha(); $p->Pilha(); // empilha os elementos $p->Empilha(1); // topo = 1 $p->Empilha(2); // topo = 2 $p->Empilha(3); // topo = 3 // mostra os elementos empilhados $p->MostraElementos(); echo 'Elemento desempilhado: '; echo $p->Desempilha(); // mostra o 3 echo $p->Desempilha(); // mostra o 2 echo $p->Desempilha(); // mostra o 1 echo $p->Desempilha(); // mostra "A pilha esta vazia" */ ?>