搜索一般指的是深度搜索和广度搜索。这两种搜索算法都有固定的格式,下面是深搜和广搜的固定套路:
1.广搜(BFS)
void BFS(){
Node *Q = NULL;
s 入队列Q;
while(Q != NULL){
取Q的头元素u;
for(节点v :Q的子节点){
if(v是叶子节点){
计算最有值;
}else{
if(v 满足预设条件) v入队列Q;
else 丢弃v;
}
标记u;
}
}
}
2.深搜(DFS)
void DFS(int t){
if(t > n){
output(x);
}else{
for(int i=0;i<=l;i++){
x[t] = i;
if(legal(t)){
DFS(t+1);
}
}
}
}