示例#1
0
    public MainClass()
    {
        void Main()
        {
            Pilha p;

            p = new Pilha();

            p.
        }

        { }
    }
示例#2
0
        private Pilha <char> ApenasParenteses(string expressao)
        {
            var parenteses = new Pilha <char>(4);

            for (int i = 0; i < expressao.Length; i++)
            {
                if (expressao[i] == '(' || expressao[i] == ')')
                {
                    parenteses.Empilha(expressao[i]);
                }
            }
            return(parenteses);
        }
        static void Main()
        {
            var pilha = new Pilha();

            pilha.Empilha(1);
            pilha.Empilha(10);
            pilha.Empilha(100);

            Console.WriteLine(pilha.Desempilha());
            Console.WriteLine(pilha.Desempilha());
            Console.WriteLine(pilha.Desempilha());
            Console.WriteLine(pilha.Desempilha());
        }
 protected void btnMostrar_Click(object sender, EventArgs e)
 {
     ltrMsg.Text = "";
     if (Session["INSERCAO"] != null)
     {
         pilhaPalavras = (List <String>)Session["INSERCAO"];
         ltrDados.Text = Pilha.Mostrar(pilhaPalavras);
     }
     else
     {
         ltrDados.Text = "<div class='alert alert-danger'>Não há elementos</div>";
     }
 }
        static void Main(string[] args)
        {
            var s = new Pilha();
            var f = new ForExample();

            s.Empilha(1);
            s.Empilha(10);
            s.Empilha(100);
            Console.WriteLine(s.Desempilha());
            Console.WriteLine(s.Desempilha());
            Console.WriteLine(s.Desempilha());
            f.contaVezes();
        }
示例#6
0
        static void Main(string[] args)
        {
            StringBuilder expression = new StringBuilder();
            Pilha         operations = new Pilha();

            Console.WriteLine("CALCULADORA DE EXPRESSÕES - POLONESA REVERSA");
            Console.Write(">");
            string msg = Console.ReadLine();

            Console.WriteLine(Polonesa_Reversa.GetExpressionFormated(msg));
            Console.WriteLine(Polonesa_Reversa.ExpressionCalculate(msg));
            Console.ReadLine();
        }
        private bool VerificarPalindromo(string palavra)
        {
            int TamanhoMetade  = (int)(palavra.Length / 2);
            var primeiraMetade = new Pilha <char>(TamanhoMetade);
            var segundaMetade  = new Pilha <char>(TamanhoMetade);

            for (int i = 0, j = palavra.Length - 1; i < TamanhoMetade && j >= TamanhoMetade; i++, j--)
            {
                primeiraMetade.Empilha(palavra[i]);
                segundaMetade.Empilha(palavra[j]);
            }

            return(primeiraMetade.Equals(segundaMetade));
        }
示例#8
0
        private static double PosfixaParaResultado(string posfixa)
        {
            var pilhaOperadores = new Pilha <double>(posfixa.Length);

            foreach (char elemento in posfixa)
            {
                if (Char.IsDigit(elemento))
                {
                    pilhaOperadores.push(Char.GetNumericValue(elemento));
                }
                else
                {
                    double ultimoNum    = pilhaOperadores.pop();
                    double penultimoNum = pilhaOperadores.pop();
                    double result       = 0;

                    switch (elemento)
                    {
                    case '^':
                        result = Math.Pow(penultimoNum, ultimoNum);
                        break;

                    case '*':
                        result = penultimoNum * ultimoNum;
                        break;

                    case '/':
                        result = penultimoNum / ultimoNum;
                        break;

                    case '%':
                        result = penultimoNum % ultimoNum;
                        break;

                    case '+':
                        result = penultimoNum + ultimoNum;
                        break;

                    case '-':
                        result = penultimoNum - ultimoNum;
                        break;
                    }

                    pilhaOperadores.push(result);
                }
            }
            return(pilhaOperadores.pop());
        }
示例#9
0
        static void Main(string[] args)
        {
            Pilha    minhaPilha = new Pilha();
            Elemento aux;

            aux = new Elemento('l');
            minhaPilha.empilhar(aux);
            aux = new Elemento('a');
            minhaPilha.empilhar(aux);
            aux = new Elemento('b');
            minhaPilha.empilhar(aux);

            minhaPilha.Imprimir();

            Console.ReadKey();
        }
示例#10
0
        private Carta GetValidCard()
        {
            Carta         aux      = this.monte.RemoveTopCard();
            Pilha <Carta> pilhaaux = new Pilha <Carta>();

            while (aux is Especial || aux is Curinga)
            {
                pilhaaux.Push(aux);
                aux = this.monte.RemoveTopCard();
            }
            while (pilhaaux.Count > 0)
            {
                this.monte.Add(pilhaaux.Pop());
            }
            return(aux);
        }
        static void Main(string[] args)
        {
            bool           exit     = false;
            Pilha <String> pilhaStr = new Pilha <String>();
            Pilha <int>    pilhaInt = new Pilha <int>();

            while (!exit)
            {
                switch (Menu())
                {
                case 1:
                    Console.WriteLine("Insira a String");
                    pilhaStr.push(Console.ReadLine());
                    Console.WriteLine("Insira o Inteiro");
                    pilhaInt.push(int.Parse(Console.ReadLine()));
                    break;

                case 2:
                    try
                    {
                        Console.WriteLine("String Removida: " + pilhaStr.pop());
                        Console.WriteLine("Inteiro Removido: " + pilhaInt.pop());
                    }
                    catch (Exception)
                    {
                        Console.WriteLine("Pilha Vazia");
                    }
                    Console.ReadLine();
                    break;

                case 3:
                    Console.WriteLine("Strings");
                    pilhaStr.print();
                    Console.WriteLine("\nInteiros");
                    pilhaInt.print();
                    Console.ReadLine();
                    break;

                case 4:
                    exit = true;
                    break;

                default:
                    break;
                }
            }
        }
示例#12
0
    public static void Main(string[] args)
    {
        Aluno a1 = new Aluno("A1", 12);
        Aluno a2 = new Aluno("A2", 32);
        Aluno a3 = new Aluno("A3", 42);

        Pilha <Aluno> pilha = new Pilha <Aluno>();

        pilha.push(a2);
        pilha.push(a1);
        pilha.push(a3);
        pilha.push(a1);
        pilha.pop();

        Console.WriteLine($"Minha pilha: {pilha.tamanho()}");
        Console.Write(pilha.top().Nome);
        Console.WriteLine();
    }
示例#13
0
    public static void Main(string[] args)
    {
        Pilha <string> p = new Pilha <string>();

        p.Push("Vicente");
        p.Push("de");
        p.Push("Paiva");
        p.Push("Limeira");

        Form <string> .ListaOrdemChegada(p);

        Form <string> .ListaOrdemInversa(p);

        Console.WriteLine($"\nExcluindo o ultimo a chegar ...");
        p.Pop();
        Form <string> .ListaOrdemChegada(p);

        Console.WriteLine($"\nExcluindo o ultimo a chegar ...");
        p.Pop();
        Form <string> .ListaOrdemChegada(p);

        Console.WriteLine($"\nAgora com inteiros ...");

        Pilha <int> n = new Pilha <int>();

        n.Push(100);
        n.Push(7);
        n.Push(21);
        n.Push(19);

        Form <int> .ListaOrdemChegada(n);

        Form <int> .ListaOrdemInversa(n);

        Console.WriteLine($"\nExcluindo o ultimo a chegar ...");
        n.Pop();
        Form <int> .ListaOrdemChegada(n);

        Console.WriteLine($"\nExcluindo o ultimo a chegar ...");
        n.Pop();
        Form <int> .ListaOrdemChegada(n);

        return;
    }
示例#14
0
        private Pilha <char> ConverteDecimalBinario(int valor)
        {
            var binarios      = new Pilha <char>(8);
            int result        = 0;
            int valorPotencia = 0;

            for (int i = 7; i >= 0; i--)
            {
                valorPotencia = Pow(2, i);
                if ((result = (valor - valorPotencia)) >= 0)
                {
                    valor = result;
                    binarios.Empilha('1');
                    continue;
                }
                binarios.Empilha('0');
            }
            return(binarios);
        }
    protected void btnInserir_Click(object sender, EventArgs e)
    {
        try
        {
            if ((txtElemento.Text != "") && (txtElemento.Text != null))
            {
                Pilha.Inserir(txtElemento.Text, pilhaPalavras);

                Session["INSERCAO"] = pilhaPalavras;
            }

            txtElemento.Text = "";
            ltrMsg.Text      = "<p class='alert alert-success'>Inserido com sucesso!</p>";
            ltrDados.Text    = Pilha.Mostrar(pilhaPalavras);
        }
        catch (Exception)
        {
            ltrMsg.Text = "<p class='alert alert-danger'>Inserção não realizada!</p>";
        }
    }
示例#16
0
        private bool VerificarOrdem(Pilha <char> parenteses)
        {
            if (parenteses.Topo() == '(')
            {
                return(false);
            }

            int control = 0;

            while (!parenteses.EstaVazia())
            {
                if (parenteses.Desempilhar() == ')')
                {
                    control++;
                    continue;
                }
                control--;
            }
            return(control == 0 && parenteses.Tamanho % 2 == 0);
        }
示例#17
0
        public formPrincipal()
        {
            InitializeComponent();

            pilha  = new Pilha();
            fila   = new Fila();
            arvore = new ArvoreBinaria();
            hash   = new Hash(20);
            lista  = new Lista();

            MaterialSkinManager materialSkinManager = MaterialSkinManager.Instance;

            materialSkinManager.AddFormToManage(this);
            materialSkinManager.Theme = MaterialSkinManager.Themes.DARK;

            materialSkinManager.ColorScheme = new ColorScheme(
                Primary.Indigo800, Primary.Indigo700,
                Primary.Indigo400, Accent.Indigo400,
                TextShade.WHITE
                );
        }
示例#18
0
        static void Main(string[] args)
        {
            Console.WriteLine("Exemplo Pilha!");
            Pilha pilha = new Pilha();

            pilha.Push(14);
            pilha.Push(25);
            pilha.Push(36);

            Console.WriteLine($"Topo={pilha.Peek()}");
            Console.WriteLine($"Qtd={pilha.Count()}");

            pilha.Pop();
            pilha.Pop();

            Console.WriteLine($"Topo={pilha.Peek()}");
            Console.WriteLine($"Qtd={pilha.Count()}");

            pilha.Pop();

            Console.WriteLine($"Topo={pilha.Peek()}");
            Console.WriteLine($"Qtd={pilha.Count()}");
        }
示例#19
0
        static void Main(string[] args)
        {
            Pilha pilha = new Pilha();

            do
            {
                Console.Clear();
                double peso = new Random().Next(20, 120);

                if (pilha.LimiteSuportaPeso())
                {
                    pilha.InserirPeso(peso);
                }
                else
                {
                    Console.WriteLine($"\nO peso empilhado ultrapassou o limite suportado!");
                }

                Console.WriteLine($"\nPeso suportado pela coluna: {pilha.VerificaLimite()}");
                Console.WriteLine($"\nPeso total empilhado: {pilha.Peso}");
            } while (Console.ReadLine() == "");

            Console.ReadKey();
        }
示例#20
0
 public NE(Pilha pilha)
 {
     this.pilha = pilha;
 }
示例#21
0
 public Exercicio1()
 {
     Pilha = new Pilha <int>();
 }
示例#22
0
 public GoTo(Dictionary <string, int> labels, string label, Pilha pilha)
 {
     this.labels = labels;
     this.label  = label;
     this.pilha  = pilha;
 }
示例#23
0
 public Print(Pilha pilha)
 {
     this.pilha = pilha;
 }
    private void Start()
    {
        pilha = FindObjectOfType(typeof(Pilha)) as Pilha;
        fps   = FindObjectOfType(typeof(FpsController)) as FpsController;
        if (!visivil)
        {
            this.gameObject.GetComponent <SpriteRenderer>().enabled = false;
            this.gameObject.GetComponent <Light>().enabled          = false;
            this.gameObject.tag = "Untagged";
        }
        switch (this.gameObject.name)
        {
        case "Carta da familia wong":
            descricao = "Estamos abandonando a nossa casa e levando o principal com a gente... \n" +
                        "Estamos deixando uma câmera e uma pilha, caso alguém queira ver essa aparição, pois ela só é visível pela câmera.";
            break;

        case "Carta da familia":
            descricao = "Não aguentamos mais, essa aparição aparece quando menos esperamos... \n" +
                        "O estranho é que essa aparição parece com aquela mulher... \n" + "Será que aquela mulher morreu?";
            break;

        case "Carta do Will":
            descricao = "Sempre me perguntei o que será que tem atrás desta porta com senha que o meu pai tanto esconde... \n" +
                        "Meu pai sempre disse que a senha tem 5 dígitos e que a senha seria referente ao número de coisas que temos em casa... \n" +
                        "Estranho pois temos 2 quartos, 3 portas, 1 maquina, 1 estante, 7 janelas e 1 painel eletrônico... \n" +
                        "Esses números, pertencem a senha... \n" + "Me pergunto qual é a ordem dos 5 dígitos...";
            break;

        case "Carta do pai":
            descricao = "Eu sempre esqueço a senha do painel eletrônico, pois nunca fui bom para lembrar números, como eu não quero que ninguém saiba fiz esse enigma... \n" +
                        "A combinação da senha é a seguinte: \n" +
                        "A SOMA DE 4 NÚMEROS, É O PRIMEIRO DIGITO \n" +
                        "A SOMA DE 2 NÚMEROS, MENOS O PRIMEIRO DIGITO, É O SEGUNDO DIGITO \n" +
                        "A SUBTRAÇÃO DO SEGUNDO DIGITO COM UM NÚMERO, É O TERCEIRO DIGITO" +
                        "A SOMA DO TERCEIRO DIGITO COM UM NÚMERO, É O QUARTO DIGITO \n" +
                        "A SUBTRAÇÃO DO QUARTO DIGITO COM TERCEIRO DIGITO, É O ULTIMO DIGITO. \n" +
                        "Os números negativos têm que ser tratados como positivos. \n" +
                        "A soma dos 5 dígitos, dividido por 2, tem como resultado o número 7.";
            break;

        case "Família Valentine":
            descricao = "Essa mulher chamada Cristine é muito estranha, ela esteve na casa dos Wong e agora apareceu na frente da minha casa. Minha esposa e eu desconfiamos dela..." +
                        "Ela parecia apavorada, o que será que essa mulher tinha para ficar assim...";
            break;

        case "Família Kennedy":
            descricao = "Nós moramos nesta casa por mais de 20 anos, em todos esses anos nunca tínhamos visto nada deste tipo... \n" +
                        "Sim depois que aquela mulher misteriosa morreu, tudo em nossas vidas mudou, fomos forçados a abandonar à nossa casa e tudo o que conquistamos...";
            break;

        case "Família Wong":
            descricao = "Uma mulher misteriosa chamada Cristine apareceu em nossa casa pedindo por comida...\n" +
                        "Ela estava toda molhada e estava muito frio...\n" +
                        "Eu e a minha esposa decidimos deixar ela passar a noite em nossa casa...\n" +
                        "Ela parecia está fugindo de alguma coisa ou de alguém..." +
                        "Perguntei para ela se tinha alguma coisa errada, ela respondeu que não..." +
                        "Me pergunto o que será que aconteceu com ela...";
            break;

        case "Família que fugiu da casa":
            descricao = "Parece que além da Cristine houveram mais 3 vítimas, mais 3 mulheres...\n" +
                        "Parece que Lucy morreu primeiro que a Mikaele, Mikaele morreu depois da Kefura e parece que a Cristine foi a última vítima...\n" +
                        "Me pergunto como elas morreram.";
            break;

        case "Homem que viu o corpo das vítimas":
            descricao = "Eu encontrei o corpo de 3 garotas mortas, parece que a primeira morreu espancada, a segunda morreu enforcada e a terceira morreu com após ter o pescoço quebrado..." +
                        "Mas ainda teve uma quarta vítima.." + "Eu não encontrei o corpo desta garota que morreu.";
            break;

        case "Pedido de ajuda":
            descricao = "Se alguém estiver lendo está carta, me ajude por favor... \n" + "Este louco me estrupa e me bate...\n" +
                        "Consegui escapar em um momento de distração dele, mas ele está atrás de mim, ele vai me matar...\n" +
                        "Ele é louco, gosta de tortura, meu Deus...\n" + "Socorro...";
            break;

        case "Chris":
            descricao = "Tive que matar aquela maldita antes que ela abrir-se aquela boca, é muito arriscado deixar o corpo dela por aqui como eu fiz com as outras 3...\n" +
                        "Já sei, vou colocar o corpo dela no cemitério, assim ninguém irá suspeitar.";
            break;

        case "Pessoa Misteriosa":
            descricao = "Coloquei esse sistema aqui para evitar que alguém tente procurar o que não deve... \n" + "Tem coisas aqui que não devem ser achadas.";
            break;

        case "Filho dos Valentine":
            descricao = "A família do Will estava indo embora por causa desses eventos estranhos, ele me deu a chave do quarto dele caso eu queira ir para lá algum dia..."
                        + "É uma pena que isso ele tenha que abandonar o lar dele.";
            break;

        case "Cristine":
            descricao = "Meu Deus, ele já matou outras garotas antes de mim...\n" + "Ele é um serial killer, ele sequestra garotas e traz para está ilha...";
            break;

        case "Carta de Chris":
            descricao = "Algo estranho aconteceu após matar aquela mulher, parece que o ódio dela em relação a mim e a tudo o que eu fiz cresceu tanto, que o espirito dela busca vingança...\n" +
                        "Eu não posso me livrar dele, pois seria muito suspeito...\n" + "Apenas irei fugir com a minha família e começar uma nova vida...\n" +
                        "irei sumir e nunca irão descobrir os meus crimes...\n" + "Talvez a única forma de se livrar dela é destruindo seus restos, mas isso não me interesse, já estarei longe daqui... \n" +
                        "Serei um homem livre e irei procurar outra vítima...";
            break;

        case "Diario de Chris":
            descricao = "Matei aquela mulheres, os vizinhos estão com suspeitas de mim... \n" +
                        "Preciso ir embora logo, acho que irei para a cidade grande... \n" +
                        "Me livrei o maximo possível de provas contra mim e ainda fiz diversos enigmas para não descobrirem a verdade..." +
                        "Nunca irão saber a verdade";
            break;
        }
    }
示例#25
0
 public void Desempilha(Pilha p, int x, bool DeuCerto)
 {
     x = elementos[topo];
     topo--; // return x ?
 }
示例#26
0
 public Read(Pilha pilha)
 {
     this.pilha = pilha;
 }
示例#27
0
        private void PostTests(int ip, IOrganismo org)
        {
            Pilha p         = org.GetPilha();
            int   sizeStack = p.Size();
            int   val;

            switch (ip)
            {
            case 4:    //zero c
                Assert.IsTrue(org.getReg(R_C) == 0);
                ValidateIP(ip, org.ip, 2);
                break;

            case 6:    //or c
                Assert.IsTrue(org.getReg(R_C) == 1);
                ValidateIP(ip, org.ip, 2);
                break;

            case 8:    //SHL C
                Assert.IsTrue(org.getReg(R_C) == 2);
                ValidateIP(ip, org.ip, 2);
                break;

            case 10:    //SHL C
                Assert.IsTrue(org.getReg(R_C) == 4);
                ValidateIP(ip, org.ip, 2);
                break;

            case 12:    //ADRB A
                Assert.IsTrue(org.getReg(R_C) == 4);
                ValidateIP(ip, org.ip, 2);
                break;

            case 18:    //SUB A,C,A  - pega a posição inicial do programa e coloca em C
                ValidateIP(ip, org.ip, 4);
                Assert.IsTrue(org.getReg(R_A) == startP + 0, org.getReg(R_A) + "<>" + startP + 0);
                break;

            case 22:    //MOV A,B  - B = A
                ValidateIP(ip, org.ip, 3);
                Assert.IsTrue(org.getReg(R_A) == org.getReg(R_B), org.getReg(R_A) + "<>" + org.getReg(R_B));
                break;

            case 25:    //ADRF A
                ValidateIP(ip, org.ip, 2);
                Assert.IsTrue(org.getReg(R_A) == startP + 109);
                break;

            case 31:    //INC A
                ValidateIP(ip, org.ip, 2);
                Assert.IsTrue(org.getReg(R_A) == tmp1 + 1);
                break;

            case 33:    //SUB A,B,C
                ValidateIP(ip, org.ip, 4);
                Assert.IsTrue(org.getReg(R_C) == (org.getReg(R_A) - org.getReg(R_B)));
                Assert.IsTrue(org.getReg(R_C) == ORG_SIZE, org.getReg(R_C) + " <> " + ORG_SIZE);
                break;

            case 41:    //MAL C,A
                ValidateIP(ip, org.ip, 3);
                Assert.IsTrue(org.child != null);
                Assert.IsTrue(org.getReg(R_C) == ORG_SIZE, org.getReg(R_C) + " <> " + ORG_SIZE);
                break;

            case 44:    //CALL
                Assert.IsTrue(sizeStack > 0);
                Assert.IsTrue(p.GetAtPos(sizeStack - 1) == ip + 1 + startP, p.GetAtPos(sizeStack - 1) + "<>" + ip + 1);
                Assert.IsTrue(org.ip == 61 + startP);
                break;

            case 50:    //JMP
                Assert.IsTrue(org.ip == 41 + startP, org.ip + " <> " + (41 + startP));

                break;

            case 61:    //PUSH A
                ValidateIP(ip, org.ip, 2);
                val = p.GetAtPos(sizeStack - 1);
                Assert.IsTrue(val == org.getReg(R_A));
                break;

            case 63:    //PUSH B
                ValidateIP(ip, org.ip, 2);
                val = p.GetAtPos(sizeStack - 1);
                Assert.IsTrue(val == org.getReg(R_B));
                break;

            case 65:    //PUSH C
                ValidateIP(ip, org.ip, 2);
                val = p.GetAtPos(sizeStack - 1);
                Assert.IsTrue(val == org.getReg(R_C));
                break;

            case 71:    //MOVI B,A
                ValidateIP(ip, org.ip, 3);
                var mA = cpu.getMemory(org.getReg(R_A));
                var mB = cpu.getMemory(org.getReg(R_A));
                Assert.IsTrue(mA == mB);
                break;

            case 74:    //DEC C
                ValidateIP(ip, org.ip, 2);
                Assert.IsTrue(org.getReg(R_C) == tmp1 - 1);
                break;

            case 76:    //IFZ C
                tmp1 = org.getReg(R_C);
                if (tmp1 == 0)
                {
                    ValidateIP(ip, org.ip, 2);
                }
                else
                {
                    //pulou
                    ValidateIP(ip, org.ip, 3);
                }
                break;

            case 78:    //JMP
                Assert.IsTrue(org.ip == 98 + startP, org.ip + " <> " + (98 + startP));
                break;

            case 87:    //JMPB  --volta pro inicio do loop de cópia
                Assert.IsTrue(org.ip == 71 + startP, org.ip + " <> " + (71 + startP));
                break;
            }
        }
示例#28
0
 public LT(Pilha pilha)
 {
     this.pilha = pilha;
 }
示例#29
0
 public formPilha()
 {
     InitializeComponent();
     pilha = new Pilha();
 }
示例#30
0
 private void EmpilheNa(Pilha <int> pilha, int valor)
 {
     pilha.Empilha(valor);
 }