dl
dl::NTree< T > 模板类 参考

N叉树 更多...

#include <dl_tree.h>

class  Node
 

Public 成员函数

 NTree ()
 
NodeAddRoot (const T &v)
 添加根节点
 
NodeAdd (const T &v, Node *node_parent)
 添加子节点
 
NodeAdd (const T &v, const T &parent)
 
NodePushBack (const T &v)
 第一个添加的为根节点,其他均为根节点的子节点
 
bool Del (Node *node)
 删除节点
 
NodeGet (T v)
 查找,失败返回nullptr
 
bool Has (Node *node)
 包含节点
 
void SetParent (Node *node, Node *parent)
 修改父节点
 
template<typename F>
void ForEach (F func)
 遍历,保证父节点先遍历
 
template<typename T1, typename F>
void Copy (const NTree< T1 > &b, F func)
 从另一个树填充
 
const std::list< Node * > & GetAll () const
 返回所有节点
 
const NodeGetRoot () const
 返回根节点,空树返回空
 
size_t GetSize () const
 返回总数量
 
auto begin ()
 标准库迭代方法不保证父节点先遍历
 
auto end ()
 
 ~NTree ()
 

详细描述

template<typename T>
class dl::NTree< T >

N叉树

在文件 dl_tree.h28 行定义.

构造及析构函数说明

◆ NTree()

template<typename T>
dl::NTree< T >::NTree ( )
inline

在文件 dl_tree.h52 行定义.

◆ ~NTree()

template<typename T>
dl::NTree< T >::~NTree ( )
inline

在文件 dl_tree.h290 行定义.

成员函数说明

◆ Add() [1/2]

template<typename T>
Node * dl::NTree< T >::Add ( const T & v,
const T & parent )
inline

在文件 dl_tree.h84 行定义.

◆ Add() [2/2]

template<typename T>
Node * dl::NTree< T >::Add ( const T & v,
Node * node_parent )
inline

添加子节点

返回值
返回节点,失败返回空指针

在文件 dl_tree.h73 行定义.

◆ AddRoot()

template<typename T>
Node * dl::NTree< T >::AddRoot ( const T & v)
inline

添加根节点

返回值
返回节点,失败返回空指针

在文件 dl_tree.h58 行定义.

◆ begin()

template<typename T>
auto dl::NTree< T >::begin ( )
inline

标准库迭代方法不保证父节点先遍历

在文件 dl_tree.h286 行定义.

◆ Copy()

template<typename T>
template<typename T1, typename F>
void dl::NTree< T >::Copy ( const NTree< T1 > & b,
F func )
inline

从另一个树填充

在文件 dl_tree.h233 行定义.

◆ Del()

template<typename T>
bool dl::NTree< T >::Del ( Node * node)
inline

删除节点

注解
自己的子节点

在文件 dl_tree.h111 行定义.

◆ end()

template<typename T>
auto dl::NTree< T >::end ( )
inline

在文件 dl_tree.h287 行定义.

◆ ForEach()

template<typename T>
template<typename F>
void dl::NTree< T >::ForEach ( F func)
inline

遍历,保证父节点先遍历

在文件 dl_tree.h205 行定义.

◆ Get()

template<typename T>
Node * dl::NTree< T >::Get ( T v)
inline

查找,失败返回nullptr

在文件 dl_tree.h143 行定义.

◆ GetAll()

template<typename T>
const std::list< Node * > & dl::NTree< T >::GetAll ( ) const
inline

返回所有节点

在文件 dl_tree.h268 行定义.

◆ GetRoot()

template<typename T>
const Node * dl::NTree< T >::GetRoot ( ) const
inline

返回根节点,空树返回空

在文件 dl_tree.h273 行定义.

◆ GetSize()

template<typename T>
size_t dl::NTree< T >::GetSize ( ) const
inline

返回总数量

在文件 dl_tree.h280 行定义.

◆ Has()

template<typename T>
bool dl::NTree< T >::Has ( Node * node)
inline

包含节点

在文件 dl_tree.h155 行定义.

◆ PushBack()

template<typename T>
Node * dl::NTree< T >::PushBack ( const T & v)
inline

第一个添加的为根节点,其他均为根节点的子节点

在文件 dl_tree.h95 行定义.

◆ SetParent()

template<typename T>
void dl::NTree< T >::SetParent ( Node * node,
Node * parent )
inline

修改父节点

在文件 dl_tree.h167 行定义.


该类的文档由以下文件生成: