(function () {
var No = function (valor, esquerda, direita) {
this.valor = valor;
this.esquerda = esquerda;
this.direita = direita;
this.ordenar = function () {
this.esquerda && this.esquerda.ordenar();
this.direita && this.direita.ordenar();
this.despromover();
return this;
};
this.despromover = function () {
var promovido = this;
if (this.esquerda && promovido.valor < this.esquerda.valor) promovido = this.esquerda;
if (this.direita && promovido.valor < this.direita.valor) promovido = this.direita;
if (promovido != this) {
var valor = this.valor;
this.valor = promovido.valor;
promovido.valor = valor;
promovido.despromover();
}
};
this.representacao = function (nivel) {
if (!nivel) nivel = 1;
var rep = new Array(nivel).join(" ") + this.valor + "\n";
if (this.esquerda) rep += this.esquerda && this.esquerda.representacao(nivel + 1);
if (this.direita) rep += this.direita && this.direita.representacao(nivel + 1);
return rep;
};
};
function ArrayToArvore(a, indice) {
if (!indice) indice = 0;
if (!a[indice]) return;
return new No(a[indice], ArrayToArvore(a, indice * 2 + 1), ArrayToArvore(a, indice * 2 + 2));
}
var no = ArrayToArvore([1, 2, 3, 4, 5, 6, 7, 8, 9]);
console.log(no.representacao());
no.ordenar();
console.log(no.representacao());
})();
--
Você está recebendo esta mensagem porque se inscreveu no grupo "Dojo Maringá" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para dojo-maringa...@googlegroups.com.
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.