用栈来递归 模板 honoi
2024-10-21 23:29:07
用栈来模拟递归的技巧
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<vector>
#include<cstring>
#include<set>
#include<algorithm>
#include<stack>
#include<string>
#include<cstdio>
#define _for(i, a, b) for (int i = (a); i<(b); ++i)
using namespace std;
struct problem {
int n;
char scr, mid, dest;
problem(int nn, char s, char m, char d) :n(nn), scr(s), mid(m), dest(d) {}
};
stack<problem> stk; int main()
{
int n;
cin >> n;
stk.push(problem(n, 'A', 'B', 'C'));
while (!stk.empty()) {
problem now = stk.top();
stk.pop();
if (now.n == ) { cout << now.scr << "->" << now.dest << endl; }
else {
stk.push(problem(now.n - , now.mid, now.scr, now.dest));//先放最后一个子问题
stk.push(problem(, now.scr, now.mid, now.dest));
stk.push(problem(now.n - , now.scr, now.dest, now.mid));
}
} system("pause");
}
最新文章
- CI在ngnix的配置
- sqlServer 2008修改字段类型和重命名字段名称的sql语句
- 一些webGL的资源
- Oracle数据库合并行记录,WMSYS.WM_CONCAT 函數的用法
- List与Set的contains方法效率问题
- HTTP Content-Type的作用
- isinstance()和__name__
- DataTables给每一列添加下拉框搜索
- Azure File文件共享(6):使用Python开发
- C#委托好处知多少
- Android Demo---如何敲出圆角的Button+圆角头像
- PHPCMS V9 添加二级导航
- Pyinstaller 打包exe
- Django中 media资源配置
- Mysql权限操作、用户管理、密码操作
- css之操作属性
- 二、idea + git
- oracle概要文件profile详解
- 【加解密专辑】对接触到的PGP、RSA、AES加解密算法整理
- Java中反射和Unsafe破坏单例设计模式