0votos

Generador de árboles binarios en JavaScript

por josejuan hace 6 años

Se recorre el árbol una vez.

Crear una función que genere aleatoriamente árboles binarios con claves únicas de números naturales en sus nodos, y de los cuales, lo único que nos interesa son las listas obtenidas al procesar el árbol de forma Pre, In y Post orden.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
function arbolAleatorio(maxNiveles, bifurcacionP) { 
    var n = 0, pre = [], ino = [], pos = [], s = ","; 
    var spn = function (l) { 
        var k = n++; 
        if(++l >= maxNiveles) return [k,k,k]; 
        var pspn = function(){return Math.random() < bifurcacionP ? spn(l) : ["","",""]}; 
        var a = pspn(), b = pspn(); 
        return [k+s+a[0]+s+b[0],a[1]+s+k+s+b[1],a[2]+s+b[2]+s+k]; 
    }; 
    return spn(0); 
 
 
 
// si se exige eliminar las hojas nulas 
function arbolAleatorio2(maxNiveles, bifurcacionP) { 
    var r = arbolAleatorio(maxNiveles, bifurcacionP); 
    var x = function(s){return s.replace(/,,+/g, ",")}; 
    return [x(r[0]), x(r[1]), x(r[2])] 
1 comentario
0votos

Escrito por josejuan hace 6 años

la parte "pre = [], ino = [], pos = [], " sobra, claro... ¡editar soluciones ya! XD XD XD

Comenta la solución

Tienes que identificarte para poder publicar tu comentario.