/*
Breadth First Tree Traversal or level order traversal implementation in javascript
*/classNode{constructor(data){this.data = data
this.left =nullthis.right =null}}classBinaryTree{constructor(){this.root =nullthis.traversal =[]}breadthFirst(){const h =this.getHeight(this.root)for(let i =0; i !== h; i++){this.traverseLevel(this.root, i)}returnthis.traversal
}// Computing the height of the treegetHeight(node){if(node ===null){return0}const lheight =this.getHeight(node.left)const rheight =this.getHeight(node.right)return lheight > rheight ? lheight +1: rheight +1}traverseLevel(node, levelRemaining){if(node ===null){return}if(levelRemaining ===0){this.traversal.push(node.data)}else{this.traverseLevel(node.left, levelRemaining -1)this.traverseLevel(node.right, levelRemaining -1)}}}export{ BinaryTree, Node }