Buscar

Desenvolva um algoritmo para testar se duas pilhas P1 e P2 são iguais.

Olá boa tarde, Alguém pode me ajudar?!!

 

Desenvolva um algoritmo para testar se duas pilhas P1 e P2 são iguais. Duas
pilhas são iguais se possuem os mesmos elementos, na mesma ordem. Você pode
utilizar pilhas auxiliares também, se necessário.

 

Exemplo abaixo

 

#include <stdio.h>
#include <stdlib.h>
#include "Pilha.h"

TipoPilha* InicializaPilha (TipoPilha *Topo)
{
    return NULL;
}

int Vazia (TipoPilha *Topo)
{
    if (Topo==NULL)
       return 1;
    else
       return 0;
}

void ImprimirPilha (TipoPilha *Topo)
{
     TipoPilha *ptaux;

     if (Topo != NULL)
     {
        puts("---Imprimindo pilha---");
        for (ptaux=Topo; ptaux!=NULL; ptaux=ptaux->elo)
            printf("%d\n",ptaux->dado);
        puts("-------Fim pilha------");
     }
     else
       puts("Pilha vazia");

}

TipoPilha* PushPilha (TipoPilha *Topo, TipoInfo Dado)
{
       TipoPilha *novo; //novo elemento

       /*aloca um novo nodo */
       novo = (TipoPilha*) malloc(sizeof(TipoPilha));
       novo->elo = NULL;

       /*insere a informação no novo nodo*/
       novo->dado = Dado;

       /*encaeia o elemento*/
       novo->elo = Topo;
       Topo = novo;
       return Topo;
}

TipoPilha* PopPilha (TipoPilha *Topo, TipoInfo *Dado)
{
   TipoPilha* ptaux;

   if (Topo == NULL)
     return NULL;   //não tem nada na pilha
   else
   {
        *Dado = (Topo)->dado;     //devolve o valor do topo
        ptaux = Topo;          //guarda o endereço do topo
        Topo = (Topo)->elo;     //o próximo passa a ser o topo
        free(ptaux);           //libera o que estava no topo
        ptaux=NULL;
        return Topo;            //retorna novo topo
   }
}

TipoInfo ConsultaPilha (TipoPilha *Topo)
{
 if (Topo==NULL)
   return 0;
 else
   return Topo->dado;

}

TipoPilha* DestroiPilha (TipoPilha *Topo)
{
        TipoPilha *ptaux;
        while (Topo != NULL)
        {
          ptaux = Topo;          //guarda o endereço do topo
          Topo = Topo->elo;     //o próximo passa a ser o topo
          free(ptaux);           //libera o que estava no topo
        }
        return NULL;
}

💡 3 Respostas

User badge image

Andre Smaira

 

Para montar o algoritmo, utilizaremos a linguagem Java. Ela é uma linguagem de programação de computadores de uso geral que é simultânea, baseada em classe, orientada a objetos, e especificamente projetada para ter o menor número possível de dependências de implementação. 


O objetivo é permitir que os desenvolvedores de aplicativos " gravem uma vez, executem em qualquer lugar ", significando que o código Java compilado pode ser executado em todas as plataformas que suportam Java sem a necessidade de recompilação. Os aplicativos Java são normalmente compilados para o bytecode que pode ser executado em qualquer máquina virtual Java (JVM),


Sabendo disso, teremos o seguinte algoritmo:

#include <stdio.h>

#include <stdlib.h>

#include "Pilha.h"

ilha* InicializaPilha (TipoPilha *Topo)

{

    return NULL;

}

int Vazia (Pilha *Topo)

{

    if (Topo==NULL)

       return 1;

    else

       return 0;

public class Teste {

  public static void main(String[] args) {

    Pilha pilha = new Pilha();

    Peca pecaInsere = new Peca();

    pilha.insere(pecaInsere);

    Peca pecaRemove = pilha.remove();

    if (pilha.vazia()) {

      System.out.println("A pilha está vazia");

    }

  }

}

}

0
Dislike0
User badge image

Andre Smaira

Para montar o algoritmo, utilizaremos a linguagem Java. Ela é uma linguagem de programação de computadores de uso geral que é simultânea, baseada em classe, orientada a objetos, e especificamente projetada para ter o menor número possível de dependências de implementação.


O objetivo é permitir que os desenvolvedores de aplicativos " gravem uma vez, executem em qualquer lugar ", significando que o código Java compilado pode ser executado em todas as plataformas que suportam Java sem a necessidade de recompilação. Os aplicativos Java são normalmente compilados para o bytecode que pode ser executado em qualquer máquina virtual Java (JVM),


Sabendo disso, teremos o seguinte algoritmo:

#include <stdio.h>

#include <stdlib.h>

#include "Pilha.h"

ilha* InicializaPilha (TipoPilha *Topo)

{

return NULL;

}

int Vazia (Pilha *Topo)

{

if (Topo==NULL)

return 1;

else

return 0;

public class Teste {

public static void main(String[] args) {

Pilha pilha = new Pilha();

Peca pecaInsere = new Peca();

pilha.insere(pecaInsere);

Peca pecaRemove = pilha.remove();

if (pilha.vazia()) {

System.out.println("A pilha está vazia");

}

}

}

}

0
Dislike0
User badge image

RD Resoluções

Para montar o algoritmo, utilizaremos a linguagem Java. Ela é uma linguagem de programação de computadores de uso geral que é simultânea, baseada em classe, orientada a objetos, e especificamente projetada para ter o menor número possível de dependências de implementação.


O objetivo é permitir que os desenvolvedores de aplicativos " gravem uma vez, executem em qualquer lugar ", significando que o código Java compilado pode ser executado em todas as plataformas que suportam Java sem a necessidade de recompilação. Os aplicativos Java são normalmente compilados para o bytecode que pode ser executado em qualquer máquina virtual Java (JVM),


Sabendo disso, teremos o seguinte algoritmo:

#include <stdio.h>

#include <stdlib.h>

#include "Pilha.h"

ilha* InicializaPilha (TipoPilha *Topo)

{

return NULL;

}

int Vazia (Pilha *Topo)

{

if (Topo==NULL)

return 1;

else

return 0;

public class Teste {

public static void main(String[] args) {

Pilha pilha = new Pilha();

Peca pecaInsere = new Peca();

pilha.insere(pecaInsere);

Peca pecaRemove = pilha.remove();

if (pilha.vazia()) {

System.out.println("A pilha está vazia");

}

}

}

}

0
Dislike0

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

✏️ Responder

SetasNegritoItálicoSublinhadoTachadoCitaçãoCódigoLista numeradaLista com marcadoresSubscritoSobrescritoDiminuir recuoAumentar recuoCor da fonteCor de fundoAlinhamentoLimparInserir linkImagemFórmula

Para escrever sua resposta aqui, entre ou crie uma conta

User badge image

Outros materiais