import { tree } from "./tree" type BinaryNode = { value: T; left: BinaryNode | null; right: BinaryNode | null; }; function bfs(head: BinaryNode | null, needle: number): boolean { const q: (BinaryNode | null)[] = [head]; while (q.length) { const current = q.shift() as BinaryNode; if (current.value === needle) { return true; } if (current.left) { q.push(current.left); } if (current.right) { q.push(current.right); } } return false; } test("bfs search works a number of values", function () { expect(bfs(tree, 20)).toEqual(true); expect(bfs(tree, -20)).toEqual(false); expect(bfs(tree, 10)).toEqual(true); expect(bfs(tree, 7)).toEqual(true); })