栈
栈是只能在某一端插入和删除的特殊线性表。进行删除和插入的一端称为栈顶,用指针top。
- 进栈:
if(top>=n){ //判断栈是否满
top++; //指针向前加1
s[top]=x; //加入x元素
}
- 退栈:
if(top<=0){ //检查是否为空 x=s[top]; //元素赋给x top--; //指针减一 }
## 深度优先搜索
深度优先搜索选择一种可能搜索,一旦发现错误,就退回一步重新选择,直到得到解。
**DFS算法框架**
“`cpp
void dfs(int dep,参数表);{
自定义参数;
if(当前是目标状态){
输出解或者作计数、评价处理;
}else
for(i = 1; i <= 状态的拓展可能数; i++)
if(第i种状态拓展可行){
维护自定义参数;
dfs(dep+1,参数表);
}
}
“`