template<typename>
class Geo::TreeNode
A generic tree structure, where each node contains an item by value.
Nodes are not copied after construction, but the SetValue function requires that the item type (_Ty) is assignable.
Functions
Name | Description |
---|---|
~TreeNode() | Destructor. |
AddChild(const _Ty &) | Add a child node with the given value 'val'. |
DeleteChild(Geo::s32) | Delete the child with index 'idx', children of the node is assigned to this node at the end of the child array. |
DeleteSubTree(Geo::s32) | Delete the child with index 'idx' and all nodes below this child. |
GetChild(Geo::s32) | Get child with index 'idx', NULL if 'idx' is out of range. |
GetChild(Geo::s32) | Get child with index 'idx', NULL if 'idx' is out of range. |
GetDepth() | Get the depth of the node. |
GetLeaves(Geo::GeoArray< const TreeNode< _Ty > * > &) | Fills in an array of all the leaf nodes underneath this node. Returns the total number of leaves in the resulting array. |
GetLevelFromRoot(Geo::GeoArray< TreeNode< _Ty > * > &, Geo::s32) | Return an array of nodes at the given depth ordered from left to right in the tree. |
GetLevelFromRoot(Geo::GeoArray< const TreeNode< _Ty > * > &, Geo::s32) | Return an array of nodes at the given depth ordered from left to right in the tree. |
GetNumChildren() | Number of immediate children nodes. |
GetNumInternalNodes() | Total number of internal nodes in the tree (i.e. not leaves) |
GetNumLevels() | Get the number of levels in the tree. |
GetNumNodes(Geo::s32) | Total number of nodes in a given level. |
GetNumNodes() | Total number of nodes in the tree. |
GetParent() | Get the parent node, NULL if this is the root. |
GetParent() | Get the parent node, NULL if this is the root. |
GetRoot() | Get the root of the tree. |
GetRoot() | Get the root of the tree. |
GetValue() | Get the value stored in the node. |
GetValue() | Get the value stored in the node. |
IsLeaf() | Returns whether this is a leaf node, i.e. has no children. |
IsRoot() | Returns whether this is a root node, i.e. has no parent. |
Load(Geo::IGeoInputStream &) | Load tree from disk. |
RemoveChild(Geo::s32) | Remove and return the child with index 'idx' from the tree. |
Save(Geo::IGeoStream &) | Save tree to disk. |
SetValue(const _Ty &) | Set the value stored in the node. |
TreeNode() | Constructor. |
Anchor | ||||
---|---|---|---|---|
|
Geo::TreeNode< _Ty >::~TreeNode
...
public: ~TreeNode()
...
Destructor.
Anchor | ||||
---|---|---|---|---|
|
TreeNode<_Ty>* Geo::TreeNode< _Ty >::AddChild
...
public: TreeNode< _Ty > * AddChild
(
const _Ty & val
)
...
Add a child node with the given value 'val'.
Anchor | ||||
---|---|---|---|---|
|
bool Geo::TreeNode< _Ty >::DeleteChild
...
public: bool DeleteChild
(
Geo::s32 idx
)
...
Delete the child with index 'idx', children of the node is assigned to this node at the end of the child array.
Anchor | ||||
---|---|---|---|---|
|
bool Geo::TreeNode< _Ty >::DeleteSubTree
...
public: bool DeleteSubTree
(
Geo::s32 idx
)
...
Delete the child with index 'idx' and all nodes below this child.
Anchor | ||||
---|---|---|---|---|
|
const TreeNode<_Ty>* Geo::TreeNode< _Ty >::GetChild
...
public: const TreeNode< _Ty > * GetChild
(
Geo::s32 idx
) const
...
Get child with index 'idx', NULL if 'idx' is out of range.
Anchor | ||||
---|---|---|---|---|
|
TreeNode<_Ty>* Geo::TreeNode< _Ty >::GetChild
...
public: TreeNode< _Ty > * GetChild
(
Geo::s32 idx
)
...
Get child with index 'idx', NULL if 'idx' is out of range.
Anchor | ||||
---|---|---|---|---|
|
Geo::s32 Geo::TreeNode< _Ty >::GetDepth
...
public: Geo::s32 GetDepth() const
...
Get the depth of the node.
Anchor | ||||
---|---|---|---|---|
|
Geo::s32 Geo::TreeNode< _Ty >::GetLeaves
...
public: Geo::s32 GetLeaves
(
Geo::GeoArray< const TreeNode< _Ty > * > & leaves
) const
...
Fills in an array of all the leaf nodes underneath this node. Returns the total number of leaves in the resulting array.
Anchor | ||||
---|---|---|---|---|
|
bool Geo::TreeNode< _Ty >::GetLevelFromRoot
...
protected: bool GetLevelFromRoot
(
Geo::GeoArray< TreeNode< _Ty > * > & levelNodes,
Geo::s32 level
)
...
Return an array of nodes at the given depth ordered from left to right in the tree.
Anchor | ||||
---|---|---|---|---|
|
bool Geo::TreeNode< _Ty >::GetLevelFromRoot
...
public: bool GetLevelFromRoot
(
Geo::GeoArray< const TreeNode< _Ty > * > & levelNodes,
Geo::s32 level
) const
...
Return an array of nodes at the given depth ordered from left to right in the tree.
Anchor | ||||
---|---|---|---|---|
|
Geo::s32 Geo::TreeNode< _Ty >::GetNumChildren
...
public: Geo::s32 GetNumChildren() const
...
Number of immediate children nodes.
Anchor | ||||
---|---|---|---|---|
|
Geo::s32 Geo::TreeNode< _Ty >::GetNumInternalNodes
...
public: Geo::s32 GetNumInternalNodes() const
...
Total number of internal nodes in the tree (i.e. not leaves)
Anchor | ||||
---|---|---|---|---|
|
Geo::s32 Geo::TreeNode< _Ty >::GetNumLevels
...
public: Geo::s32 GetNumLevels() const
...
Get the number of levels in the tree.
Anchor | ||||
---|---|---|---|---|
|
Geo::s32 Geo::TreeNode< _Ty >::GetNumNodes
...
public: Geo::s32 GetNumNodes
(
Geo::s32 level
) const
...
Total number of nodes in a given level.
Anchor | ||||
---|---|---|---|---|
|
Geo::s32 Geo::TreeNode< _Ty >::GetNumNodes
...
public: Geo::s32 GetNumNodes() const
...
Total number of nodes in the tree.
Anchor | ||||
---|---|---|---|---|
|
const TreeNode<_Ty>* Geo::TreeNode< _Ty >::GetParent
...
public: const TreeNode< _Ty > * GetParent() const
...
Get the parent node, NULL if this is the root.
Anchor | ||||
---|---|---|---|---|
|
TreeNode<_Ty>* Geo::TreeNode< _Ty >::GetParent
...
public: TreeNode< _Ty > * GetParent()
...
Get the parent node, NULL if this is the root.
Anchor | ||||
---|---|---|---|---|
|
const TreeNode<_Ty>* Geo::TreeNode< _Ty >::GetRoot
...
public: const TreeNode< _Ty > * GetRoot() const
...
Get the root of the tree.
Anchor | ||||
---|---|---|---|---|
|
TreeNode<_Ty>* Geo::TreeNode< _Ty >::GetRoot
...
public: TreeNode< _Ty > * GetRoot()
...
Get the root of the tree.
Anchor | ||||
---|---|---|---|---|
|
const _Ty& Geo::TreeNode< _Ty >::GetValue
...
public: const _Ty & GetValue() const
...
Get the value stored in the node.
Anchor | ||||
---|---|---|---|---|
|
_Ty& Geo::TreeNode< _Ty >::GetValue
...
public: _Ty & GetValue()
...
Get the value stored in the node.
Anchor | ||||
---|---|---|---|---|
|
bool Geo::TreeNode< _Ty >::IsLeaf
...
public: bool IsLeaf() const
...
Returns whether this is a leaf node, i.e. has no children.
Anchor | ||||
---|---|---|---|---|
|
bool Geo::TreeNode< _Ty >::IsRoot
...
public: bool IsRoot() const
...
Returns whether this is a root node, i.e. has no parent.
Anchor | ||||
---|---|---|---|---|
|
bool Geo::TreeNode< _Ty >::Load
...
public: bool Load
(
Geo::IGeoInputStream & reader
)
...
Load tree from disk.
Anchor | ||||
---|---|---|---|---|
|
TreeNode<_Ty>* Geo::TreeNode< _Ty >::RemoveChild
...
public: TreeNode< _Ty > * RemoveChild
(
Geo::s32 idx
)
...
Remove and return the child with index 'idx' from the tree.
Anchor | ||||
---|---|---|---|---|
|
bool Geo::TreeNode< _Ty >::Save
...
public: bool Save
(
Geo::IGeoStream & writer
) const
...
Save tree to disk.
Anchor | ||||
---|---|---|---|---|
|
void Geo::TreeNode< _Ty >::SetValue
...
public: void SetValue
(
const _Ty & val
)
...
Set the value stored in the node.
Anchor | ||||
---|---|---|---|---|
|
Geo::TreeNode< _Ty >::TreeNode
...
public: TreeNode()
...
Constructor.