feat: add tree.siblings

This commit is contained in:
vsavkin
2016-05-24 13:46:50 -07:00
parent 5bf1c93ead
commit 013f9a2bbc
2 changed files with 14 additions and 0 deletions

View File

@ -21,6 +21,14 @@ export class Tree<T> {
return n && n.children.length > 0 ? n.children[0].value : null;
}
siblings(t: T): T[] {
const p = findPath(t, this._root, []);
if (p.length < 2) return [];
const c = p[p.length - 2].children.map(c => c.value);
return c.filter(cc => cc !== t);
}
pathFromRoot(t: T): T[] { return findPath(t, this._root, []).map(s => s.value); }
contains(tree: Tree<T>): boolean { return contains(this._root, tree._root); }