【发布时间】:2009-11-25 02:09:32
【问题描述】:
有没有什么好的 C++ 树操作(模板)库可以做一些基本的事情,比如二叉树。
虽然从头开始写一棵二叉树并不难,但我真的很惊讶找到一个现成的树并不是那么容易。
【问题讨论】:
有没有什么好的 C++ 树操作(模板)库可以做一些基本的事情,比如二叉树。
虽然从头开始写一棵二叉树并不难,但我真的很惊讶找到一个现成的树并不是那么容易。
【问题讨论】:
树是graphs 的子集。那里有很多图形库,例如Boost Graph Library。您必须根据需要添加顶点,然后使用众多visitors 中的任何一个来遍历您的树。
或者,您可以使用标准容器自定义制作一个(将根节点视为包含 2 个具有值的子节点,并且可能还有 2 个其他子节点)。
【讨论】:
你需要这棵树做什么? STL 或 Boost 中可能已经有一些东西可以满足您的需要。例如:STLstd::map<key,value> 通常实现为平衡二叉树。
还有tree.hh,它实现了一个类似STL的n路树。
【讨论】:
ACE 有一个红黑树的实现。它相当容易使用。
【讨论】: