ds-algo-study
Version:
Just experimenting with publishing a package
41 lines (35 loc) • 970 B
JavaScript
// Tree
;
{
class Tree {
constructor () {
this.root = { data: null, children: [], isRoot: true };
this.v = {};
this.e = [];
Object.freeze( this );
}
addEdge ( node, data ) {
const newNode = { data, children: [] };
this.v[ data ] = newNode;
node.children.push( newNode );
this.e.push( [ node, newNode ] );
return newNode;
}
}
Object.assign( self, { Tree } );
test();
function test () {
const t = new Tree();
t.addEdge( t.root, "a" );
t.addEdge( t.root, "b" );
t.addEdge( t.root, "c" );
t.addEdge( t.v.a, "a1" );
t.addEdge( t.v.b, "b1" );
t.addEdge( t.v.c, "c1" );
t.addEdge( t.v.a, "a2" );
t.addEdge( t.v.b, "b2" );
t.addEdge( t.v.c, "c2" );
Object.assign( self, { t } );
console.log( t );
}
}