我需要一些有关广度/深度优先搜索的C ++代码的工作片段。另外,在下面的链接中,当使用术语树时,它是引用二叉树还是更具特色的红色和黑色树?或者这是一种更抽象的树?有没有人有这些搜索的工作代码的链接......以及构建树?
树似乎在“图形”中引用了某种构造?我相信这是我尚未采用的某种数学方法。
答案 0 :(得分:2)
有问题的树是他们正在搜索的东西。在不知道搜索算法正在搜索的内容的情况下,很难理解搜索算法。
树是一种图形。图是一系列节点(可能代表某些数据),具有某些节点之间的连接。树是节点之间的连接形成层次结构的图。对于图中的任何给定节点,它只有一个指向它的“父”,它指向零个或多个子节点。并且节点不能形成圆圈;父母不能指向指向该父母的孩子。
基本上就像树上的树枝一样。
答案 1 :(得分:0)
术语“树”是指可以抽象地看作树的任何数据结构。
“树”是一种数据结构,其中有父节点和子节点,每个子节点都有一个父节点,单个“根”节点没有父节点。
如果树中的节点有多个父节点,则称为“图形”。
答案 2 :(得分:0)
树是directed acyclic graph的特殊情况(基本上是一堆带有箭头的“节点”('edge')指向彼此,这样就不会有一个箭头循环)其中有两个条件:
通过某个节点N的出局边缘可到达的节点通常称为N的子节点。
广度优先和深度优先搜索适用于通用树(实际上,它们适用于所有DAG)。但是有一些更具体的类型: