模板 123456789101112131415161718192021222324252627void dfs(int dep)//dep代表递归层数或要填的第几个空{ if(所有空都填完了) { 判断最优解/记录答案; } for(枚举这个空能填的选项) if(这个选项是合法的) { 记录下这个空(保存现场); dfs(dep+1); 取消这个空(恢复现场); }}void bfs(int x){ queue<int> q; q.push(初始状态)//将初始状态入队 while(q.size()) { int u = q.front(); q.pop(); for(枚举所有可扩展状态)//找到u的所有可达状态v if(是合法的)//v需要满足某些条件,如未访问过、未在队内等 q.push(v);//入队(同时可能需要维护某些必要信息) }} 树的遍历