GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing github.com — JavaScript/Trees/BreadthFirstTreeTraversal.js at master · hackingstaar/JavaScript Expand file tree/ Copy pathBreadthFirstTreeTraversal.jsMore file actions 69 lines (62 loc) · 1.5 KB / Copy pathBreadthFirstTreeTraversal.jsFile metadata and controls69 lines (62 loc) · 1.5 KB 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 /* Breadth First Tree Traversal or level order traversal implementation in javascript Author: @GerardUbuntu */ class Node { constructor(data) { this.data = data this.left = null this.right = null } } class BinaryTree { constructor() { this.root = null } breadthFirstIterative() { const traversal = [] if (this.root) { traversal.push(this.root) } for (let i = 0; i < traversal.length; i++) { const currentNode = traversal[i] if (currentNode.left) { traversal.push(currentNode.left) } if (currentNode.right) { traversal.push(currentNode.right) } traversal[i] = currentNode.data } return traversal } breadthFirstRecursive() { const traversal = [] const h = this.getHeight(this.root) for (let i = 0; i !== h; i++) { this.traverseLevel(this.root, i, traversal) } return traversal } // Computing the height of the tree getHeight(node) { if (node === null) { return 0 } const lheight = this.getHeight(node.left) const rheight = this.getHeight(node.right) return lheight > rheight ? lheight + 1 : rheight + 1 } traverseLevel(node, levelRemaining, traversal) { if (node === null) { return } if (levelRemaining === 0) { traversal.push(node.data) } else { this.traverseLevel(node.left, levelRemaining - 1, traversal) this.traverseLevel(node.right, levelRemaining - 1, traversal) } } } export { BinaryTree, Node } |
| You are visitor 01402520 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |