广度优先搜索(Breadth First Search,简称BFS)
假设从A节点出发,在访问了该节点之后依次访问这个节点各个未曾访问过的邻接点,然后分别从这些邻接点出发依次访问它们的邻接点。重复此步骤,直到所有的节点都被访问完为止。
如上图,广度优先搜索的顺序是:ABCDEFG
深度优先搜索(Depth First Search,简称DFS)
假设从A节点出发,首先访问该节点,然后依次从它的各个未被访问的邻接点出发,访问邻接点的邻接点。重复此步骤,直到所有的节点都被访问完为止。
如上图,深度优先搜索的顺序是:ABDECFG
实战
现在以一个实际的例子用C#代码来实现,下面是Unity中的一个Hierarchy层级图,根节点是Root,下面有GameObject,GameObject (1), GameObject (2)三个节点,其中GameObject (1)下又有GameObject_A和GameObject_B两个节点:
using System.Collections.Generic;
using UnityEngine;
public class DM06Composite : MonoBehaviour
{
void Start()
{
DMComposite root = n