mode.utils.trees
Data structure: Trees.
Node
Bases: NodeT[T]
Tree node.
Notes
Nodes have a link to
- the ``.root`` node (or None if this is the top-most node)
- the ``.parent`` node (if this is a child node).
- a list of children
A Node may have arbitrary .data
associated with it, and arbitrary
data may also be stored in .children
.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
data |
Any
|
Data to associate with node. |
required |
Other Parameters:
Name | Type | Description |
---|---|---|
root |
NodeT
|
Root node. |
parent |
NodeT
|
Parent node. |
children |
List[NodeT]
|
List of child nodes. |
Source code in mode/utils/trees.py
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 |
|
add(data)
Add node as a child node.
Source code in mode/utils/trees.py
89 90 91 |
|
as_graph()
Convert to ~mode.utils.graphs.DependencyGraph
.
Source code in mode/utils/trees.py
121 122 123 124 125 126 127 128 129 130 131 132 133 134 |
|
detach(parent)
Detach this node from parent
node.
Source code in mode/utils/trees.py
77 78 79 80 81 82 83 |
|
discard(data)
Remove node so it's no longer a child of this node.
Source code in mode/utils/trees.py
93 94 95 96 97 |
|
new(data)
Create new node from this node.
Source code in mode/utils/trees.py
60 61 62 63 64 65 66 67 68 |
|
reattach(parent)
Attach this node to parent
node.
Source code in mode/utils/trees.py
70 71 72 73 74 75 |
|
traverse()
Iterate over the tree in BFS order.
Source code in mode/utils/trees.py
99 100 101 102 103 104 105 106 107 108 109 |
|
walk()
Iterate over hierarchy backwards.
This will yield parent nodes all the way up to the root.
Source code in mode/utils/trees.py
111 112 113 114 115 116 117 118 119 |
|