void dfs(int k)
{
	if (结束条件)
	{
		结束
	}
	for (遍历每种状态)
	{
		if (当前状态条件符合)
		{
			记录当前状态;
			dfs(当前状态);
            回溯;
        }
    }
}

``````language
queue <数据类型> 队列名;
初始状态入队;
while (队列不为空)
{
	记录当前状态;
	if (当前状态是结果)
	{
		结束;
	}
	for (遍历每种状态)
	{
		记录当前状态;
		if (当前状态可行)
		{
            当前状态入队;
		}
	}
}