Class: Tree ‹ElementType›
This is a simple implementation of a tree. It does not enforce any constraints.
Type parameters
▪ ElementType
Hierarchy
- Tree
Index
Constructors
Properties
Methods
- _traverseDepthFirst
- addChild
- getChildren
- getParent
- getRoot
- has
- isEmpty
- remove
- setRoot
- traverseBreadthFirst
- traverseDepthFirst
- findCommonNodeIndexFromPaths
- traverseToRoot
Constructors
constructor
+ new Tree(root?: ElementType): Tree
Defined in src/util/Tree.ts:106
Parameters:
| Name | Type |
|---|---|
root? |
ElementType |
Returns: Tree
Properties
Private elementMap
• elementMap: Map‹ElementType, ITreeElement‹ElementType›› = new Map
Defined in src/util/Tree.ts:106
Private root
• root: ITreeElement‹ElementType›
Defined in src/util/Tree.ts:105
Methods
Private _traverseDepthFirst
▸ _traverseDepthFirst(treeElement: ITreeElement‹ElementType›, callback: function, depth: number): void
Defined in src/util/Tree.ts:219
Parameters:
▪ treeElement: ITreeElement‹ElementType›
▪ callback: function
▸ (element: ElementType, depth: number): void
Parameters:
| Name | Type |
|---|---|
element |
ElementType |
depth |
number |
▪ depth: number
Returns: void
addChild
▸ addChild(parentElement: ElementType, element: ElementType): void
Defined in src/util/Tree.ts:139
Parameters:
| Name | Type |
|---|---|
parentElement |
ElementType |
element |
ElementType |
Returns: void
getChildren
▸ getChildren(element: any): ElementType[]
Defined in src/util/Tree.ts:194
Parameters:
| Name | Type |
|---|---|
element |
any |
Returns: ElementType[]
getParent
▸ getParent(element: any): ElementType
Defined in src/util/Tree.ts:181
Parameters:
| Name | Type |
|---|---|
element |
any |
Returns: ElementType
getRoot
▸ getRoot(): ElementType
Defined in src/util/Tree.ts:125
Returns: ElementType
has
▸ has(element: ElementType): boolean
Defined in src/util/Tree.ts:135
Parameters:
| Name | Type |
|---|---|
element |
ElementType |
Returns: boolean
isEmpty
▸ isEmpty(): boolean
Defined in src/util/Tree.ts:131
Returns: boolean
remove
▸ remove(element: ElementType): void
Defined in src/util/Tree.ts:158
Parameters:
| Name | Type |
|---|---|
element |
ElementType |
Returns: void
setRoot
▸ setRoot(element: ElementType): void
Defined in src/util/Tree.ts:114
Parameters:
| Name | Type |
|---|---|
element |
ElementType |
Returns: void
traverseBreadthFirst
▸ traverseBreadthFirst(callback: function): void
Defined in src/util/Tree.ts:206
Parameters:
▪ callback: function
▸ (element: ElementType, depth: number): void
Parameters:
| Name | Type |
|---|---|
element |
ElementType |
depth |
number |
Returns: void
traverseDepthFirst
▸ traverseDepthFirst(callback: function): void
Defined in src/util/Tree.ts:202
Parameters:
▪ callback: function
▸ (element: ElementType, depth: number): void
Parameters:
| Name | Type |
|---|---|
element |
ElementType |
depth |
number |
Returns: void
Static findCommonNodeIndexFromPaths
▸ findCommonNodeIndexFromPaths‹T›(path1: T[], path2: T[], comparator: function): number
Defined in src/util/Tree.ts:56
Given two paths in a tree, finds last common node, where the two paths meet.
Returns the indices of the found node or -1 if there is no common element.
Example 1:
s: Start path1 and path2
e1: End path1
e2: End path2
O: Common node
*: Node
s
*
O
* *
e1 *
e2
Example 2:
s
*
O and e1
*
e2
Example 3:
s1 s2
* *
* *
e1 e2
O = -1
Type parameters:
▪ T
Parameters:
▪ path1: T[]
first path
▪ path2: T[]
second path
▪Default value comparator: function= (t1, t2) => t1 === t2
optional function used to compare if two nodes are equal
▸ (t1: T, t2: T): boolean
Parameters:
| Name | Type |
|---|---|
t1 |
T |
t2 |
T |
Returns: number
index of node in path1 and path2 or -1 if there is no common element
Static traverseToRoot
▸ traverseToRoot‹T›(start: T, parentOf: function): T[]
Defined in src/util/Tree.ts:86
Path from given node to root. Includes given node.
throws if a cyclic dependency is detected
Type parameters:
▪ T
Parameters:
▪ start: T
node to traverse from
▪ parentOf: function
function which returns parent of given node, or null if node is at root.
▸ (child: T): T | null
Parameters:
| Name | Type |
|---|---|
child |
T |
Returns: T[]