Good afternoon I followed a toturial on how to make a stack link \ link
but my code does not execute 2 3 and 0
follows:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace fila_teste
{
class Program
{
static Boolean empilhar(int[] pilha, ref int topo, int dado) // empilhar tem que conter a pilha e o topo
{
Boolean retorno = false; // diz se nao vao conseguir receber o valor dentro da pilha
if (topo < 10)
{
pilha[topo] = dado;
topo = topo + 1;
retorno = true; // recebeu +1
}
return retorno;
}
//static void Main(string[] args)
//{
// int[] pilha = new int[10]; // criaçao de vetor
// int topo = 0; //define quantos valores estao defenidos ns pilha
//}
// este ja e para desempilhar
static Boolean desempilhar(int[] pilha, ref int topo, ref int dado) // empilhar tem que conter a pilha e o topo
{
Boolean retorno = false; // diz se nao vao conseguir receber o valor dentro da pilha
if (topo > 0)
{ topo = topo - 1;
dado = pilha[topo]; //dado recebe topo da pilha
retorno = true; // recebeu +1
}
return retorno;
}
static void exibirdados(int[] pilha, int topo) //exibe o que esta dentro da pilha quantidade
{
// for (int i = 0; i < topo; i++)
// {
// Console.WriteLine(pilha[i]);
// }
//}
for (int i = topo-1; i >= 0; i--)
{
Console.WriteLine(pilha[i]);
}
}
static int exibirmenu() //exibe o menu que criei abaixo
{
int op = 0;
Console.Clear(); // limpa
Console.WriteLine("menu de opçoes:"); //chuta as opçoes
Console.WriteLine("1 empilhar:"); //chuta as opçoes
Console.WriteLine("2 desempilhar:"); //chuta as opçoes
Console.WriteLine("3 exibir pilha:"); //chuta as opçoes
Console.WriteLine("0 sair:"); //chuta as opçoes
Console.WriteLine("opçao: "); //chuta as opçoes
op = Convert.ToInt32(Console.ReadLine()); // converte op para numero pois era um inteiro
return op;
}
static void Main(string[] args)
{
int[] pilha = new int[10]; // criaçao de vetor
int topo = 0; //define quantos valores estao defenidos ns pilha
int valor = 0;
int op = 0;
string msg = ""; // mostra algo
while (op != 4)
{
op = exibirmenu();
if (op == 1)
{
Console.Clear(); // limpa
Console.WriteLine("entrada de dados");
Console.Write("informe um dado");
valor = Convert.ToInt32(Console.ReadLine()); // converte valor em numero e le
msg = "erro! atingo o seu limite";
if (empilhar(pilha, ref topo, valor) == true) // caso seja true ele inserio
{
msg = "valor inserido corretamente na pilha";
}
Console.WriteLine(msg); // mostra a linha(no caso a mensagem)
Console.ReadKey();
}
}
if (op == 2)
{
Console.Clear(); // limpa
Console.WriteLine("saida de dados");
msg = "erro! pilha esta vazia";
if (desempilhar(pilha, ref topo, ref valor) == true) // caso seja true ele inserio
{
msg = "valor removido da pilha foi " + valor;
}
Console.WriteLine(msg);
Console.ReadKey();
}
if (op == 3)
{
Console.Clear(); // limpa
Console.WriteLine("Dados presentes na pilha");
exibirdados(pilha, topo);
Console.ReadKey();
}
empilhar(pilha, ref topo, 10); //aqui exibe os valores no progrma
empilhar(pilha, ref topo, 20); //aqui exibe os valores no progrma
empilhar(pilha, ref topo, 30); //aqui exibe os valores no progrma
desempilhar(pilha , ref topo, ref valor); // aqui desempilha a pilha que faz referencia(ao fazer referencia altera) ao topo e valor
exibirdados(pilha, topo);
Console.ReadKey();
}
}
}
I would like a little help, thank you
note: I am new here if you think the topic is repeated and let me know go easy on me