Ir para conteúdo
Fórum Script Brasil
  • 0

Implementar a função “paint bucket” flood fill Usando pilha encadeada


copynow

Pergunta

Implementar a função “paint bucket”

2 – Implementar a função “paint bucket”

Entrada: uma matriz mxn

com “x” ou “.” em cada

elemento. Exemplo:

x . . . .

. x x . .

. . x . .

x x . . .

. . . . .

Saída: uma matriz

“alterada”. Exemplo:

x . . . .

x x x . .

x x x . .

x x x x x

x x x x x

Utilizar entrada e saída de arquivos texto, já tenho a Pilha.h

Preciso de ajuda para implementar o main:

#ifndef _PilhaEnc_H
#define _PilhaEnc_H
#include <stdexcept>
using std::logic_error;

namespace ED {
template <typename Tipo>
class PilhaEnc {
public:
PilhaEnc();
~PilhaEnc();

// Métodos principais
void empilha(const Tipo &elem) throw (logic_error);
Tipo desempilha() throw (logic_error);
// Métodos auxiliares
bool vazia();
int tamanho();
private:
struct Celula {
Tipo el;
Celula *prox;
};

Celula *topo;
int nelem;
};

// Construtor
template <typename Tipo>
PilhaEnc<Tipo>::PilhaEnc() {
topo = NULL;
nelem = 0;
}

// Destrutor
template <typename Tipo>
PilhaEnc<Tipo>::~PilhaEnc() {
Celula *aux;
while (topo) {
aux = topo;
topo = topo->prox;
delete aux;
}
}

// Empilha
template <typename Tipo>
void PilhaEnc<Tipo>::empilha(const Tipo &el) throw (logic_error){
Celula *nova = new Celula;
if (nova == NULL) throw logic_error("Falta memoria\n");
nova->el = el;
nova->prox = topo;
topo = nova;
nelem++;
}

// Desempilha
template <typename Tipo>
Tipo PilhaEnc<Tipo>::desempilha() throw (logic_error) {
if (nelem == 0) throw logic_error("Pilha vazia\n");
Tipo ret = topo->el;
Celula *aux = topo;
topo = topo->prox;
delete aux;
nelem--;
return(ret);
}

// Métodos auxiliares
template <typename Tipo>
bool PilhaEnc<Tipo>::vazia() {
return(nelem == 0);
}
template <typename Tipo>
int PilhaEnc<Tipo>::tamanho() {
return(nelem);
}
}
#endif

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...