Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Node {
- constructor(parent, id) {
- this.id = id;
- this.child = [];
- this.parent = parent;
- }
- setChild(child) {
- this.child.push(child);
- }
- }
- let tree = [];
- const generateTree = (nodes, levels, _cLevel, _id, _cNode) => {
- if (_cLevel >= levels) return;
- if (_cLevel == null) (_cLevel = 0), (_id = 1);
- let _tNode;
- var _created = [];
- if (_cLevel == 0) {
- _cNode = new Node(null, _id);
- tree.push(_cNode);
- _created.push(_cNode);
- _tNode = _cNode;
- } else {
- const children = Math.floor(Math.random() * (nodes - 0)) + 0;
- let i = 0;
- while (i <= children) {
- _id++;
- _tNode = new Node(_cNode.id, _id);
- _cNode.setChild(_tNode.id);
- tree.push(_tNode);
- _created.push(_tNode);
- i++;
- }
- }
- _cLevel++;
- _created.forEach(element => {
- generateTree(nodes, levels, _cLevel, tree.length, element);
- });
- };
- generateTree(3, 4);
- console.log(tree);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement