flo-ll-rb-tree
Version:
A simple left leaning red black tree implementation.
37 lines • 1.08 kB
JavaScript
// Modified from https://www.geeksforgeeks.org/binary-tree-string-brackets/
import { LEFT, RIGHT } from "./tree.js";
/**
* Function to construct string from binary tree
*/
function treeToStr(nodeToStrFunc) {
return (tree) => {
const root = tree.root;
let treeStr = '';
f(root);
return treeStr;
function f(node) {
if (node === undefined) {
return;
}
treeStr += nodeToStrFunc(node);
// if leaf node, then return
if (node[LEFT] === undefined && node[RIGHT] == undefined) {
return;
}
// left subtree
if (node[LEFT] !== undefined) {
treeStr += '(';
f(node[LEFT]);
treeStr += ')';
}
// right subtree
if (node[RIGHT] !== undefined) {
treeStr += '[';
f(node[RIGHT]);
treeStr += ']';
}
}
};
}
export { treeToStr };
//# sourceMappingURL=tree-to-string.js.map