package help.guj.zagaia;
public class SimpleStackTest {
public static void main(String[] args) {
String[] names = {
"Mark", "Berg", "John", "Beni", "Jebb", "June",
"Mary", "Karl", "Fred", "Hall", "Troy", "Joan"
};
SimpleStack stack = new SimpleStack(10);
System.out.println(
"Pilha de " + stack.getCapacity() + " posiзхes criada: " + stack
);
System.out.println();
System.out.println("Preenchendo a pilha:");
for(int i = 0; i < names.length; i++) {
System.out.print("\tInserindo o nome \"" + names[i] + "\":\t");
if(stack.push(names[i]) == null)
System.out.println("PILHA CHEIA!!! impossнvel inserir...");
else
System.out.println(
stack + ". " + (stack.getCapacity() - stack.getSize()) +
" posiзхes restantes."
);
}
System.out.println();
System.out.println("Removendo 5 elementos da pilha:");
for(int i = 1; i <= 5; i++) {
System.out.print("\t" + i + "a. remoзгo: \"" + stack.pop() + "\".");
System.out.println(" A pilha agora esta assim: " + stack);
}
System.out.println();
System.out.println(
"O atual nome no topo da pilha й \"" + stack.peek() + "\"."
);
System.out.println(
"O que? Nгo acredita??? Veja entгo: " + stack
);
System.out.println("Ora essa...");
System.out.println();
stack.clear();
System.out.println("Limpando a pilha: " + stack);
System.out.println();
System.out.print("Consigo tirar mais algo da pilha? ");
System.out.println(
stack.pop() == null ? "Nгo consigo..." : "Consigo sim!"
);
}
}

#include <a_samp>
const Maximo = 40 ;
new __@vetor[Maximo],
__@tamanho;
main() {
criarPilha();
adicionarPilha(20);
adicionarPilha(30);
printf("Elemento na pilha: %d\n", elementoNaPilha());
printf("Elementos na pilha: %d elementos\n", tamanhoPilha());
retirarPilha();
printf("Elemento na pilha: %d\n", elementoNaPilha());
retirarPilha();
printf("Elemento na pilha: %d\n", elementoNaPilha());
}
stock criarPilha() {
__@tamanho = 0;
}
stock elementoNaPilha() {
if(!__@tamanho) {
print("Pilha estб vazia");
return -1;
}
return __@vetor[__@tamanho];
}
stock adicionarPilha(elemento) {
if(__@tamanho > Maximo)
print("Pilha estб cheia");
__@vetor[__@tamanho++] = elemento;
}
stock retirarPilha() {
if(!__@tamanho)
print("Pilha estб vazia");
__@tamanho--;
}
stock tamanhoPilha() {
return __@tamanho;
}


|
@Marlon
bem bacana cara, fez uma estrutura de dados bastante ъtil jб. ![]() Pra uma pessoa que tem uma boa lуgica pra fazer isso, por que nгo faz releases produtivos desse tipo ? Sу faltou o mйtodo size... Abraзos ![]() OBS: se quiser continuar o desafio, pode implementar uma Lista simplesmente encadeada, e fazer a pilha usando ela. |

//inserir elemento
__@vetor[__@tamanho++] = valor;
#define max 5
typedef struct{
int tamanho;
int item[max];
} pilha;
void iniciar(pilha &pilha)
{
pilha.item[0] = pilha.tamanho = -1;
}
void push(pilha &p, int n)
{
++p.item[++p.tamanho] = n;
}
void pop(pilha &p)
{
if(p.tamanho != -1) p.item[p.tamanho--] = -1;
}
int top(pilha &p)
{
return p.item[p.tamanho];
}
int size(pilha &p)
{
return p.tamanho+1;
}