compound-binary-file-js
Version:
This is an implementation of [Compound Binary File v.3](https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-cfb/53989ce4-7b05-4f8d-829b-d08d6148375b) \ Allows reading existing files, creation of the/write operation
29 lines (24 loc) • 979 B
text/typescript
import {Color, TreeNode} from "./Node";
import {NodeFactory} from "./RedBlackTree";
export class TreeLevel<T> {
private parent: TreeNode<T>;
private readonly nodeFactory: NodeFactory<T>;
constructor(parent: TreeNode<T>, nodeFactory: NodeFactory<T>) {
this.parent = parent;
this.nodeFactory = nodeFactory;
}
left(value: T, color: Color, levelBuilder?: (level: TreeLevel<T>) => void): void {
const node = new TreeNode<T>(value, color);
this.parent.setLeftChild(node);
if (levelBuilder != null) {
levelBuilder(new TreeLevel(node, this.nodeFactory));
}
}
right(value: T, color: Color, levelBuilder?: (level: TreeLevel<T>) => void): void {
const node = new TreeNode(value, color) as TreeNode<T>;
this.parent.setRightChild(node);
if (levelBuilder != null) {
levelBuilder(new TreeLevel(node, this.nodeFactory));
}
}
}