void dfs() { if(到达中点状态) { ... //根据题意添加 return; } if(越界或不合法状态) return; if(特殊状态) // 剪枝 return; for(扩展方式) { if(扩张方式所到达状态合法) { 修改操作; // 根据题意添加 标记; dfs(); (还原标记); //是否加上还原标记根据题意 //如果加上还原标记就是回溯法 } } }