算法题:汉诺塔

public static void movePlant(int size, List<Integer> first,List<Integer> second,List<Integer> third){
//如果只剩下一个盘子,直接将他从第一个柱子移动到第三个柱子
if (size == 1){
third.add(first.remove(first.size()-1));
return;
}
//首先将n-1个盘子,从第一个柱子移动到第二个柱子
movePlant(size-1,first,third,second);

//然后将最后一个盘子移动到第三个柱子上
third.add(first.remove(first.size()-1));

//最后将第二个柱子上的n-1个盘子,移动到第三个柱子上
movePlant(size -1 ,second,first,third);
}

 

 

分析:汉诺塔的考点是对递归的运用

推荐这些文章:

【算法基础】蓝桥杯入门算法

一、STL库
1.动态数组

vector<int> a
.push_back()
.pop.back()
.size()
.clear()

       可能存在空间爆炸问题,用  vector<int> () .swap(v)来解决。
2.集合

set<int> v
.insert()
.erase()
.cout()

比较方式:

Bool operator<(const people &rhs) const
{

Return h<rhs.h;

}

迭代器:

set...

数据结构与算法之队列

一、队列初识

队列的基本特性就是先进先出(FIFO)。也就是第一个进去的元素,第一个出来。队列就是一个只允许在一端进行插入,在另一端进行删除操作的线性表。

二、队列的代码实现
1.顺序队列
public class ArrayQueue<T> {
private T[] data;
private int size;//元素个数
private int front;//队列中第一个对象的位置
private int rear;//队列中当前对象的位置
//初始化方法
public ArrayQueue() {
...

C语言汉诺塔递归算法实现

这是个目录
一、什么是递归函数1.先看一下一个递归的例子2.递归的基本原理

二、汉诺塔问题1.简要概括一下汉诺塔的故事2.回到编程,汉诺塔问题主要就是解决这个问题:3.怎么解决汉诺塔问题要解决汉诺塔问题就要用到递归思想,这里拿四层汉诺塔举例子:
4.具体代码实现在这里可以创建一个move函数来移动盘子现在要把大象装进冰箱了1. 把冰箱门打开2.把大象塞进去3.把门关上

...

算法14用栈来求解汉诺塔问题

描述
汉诺塔问题比较经典,这里修改一下游戏规则:现在限制不能从最左侧的塔直接移动到最右侧,也不能从最右侧直接移动到最左侧,而是必须经过中间。求当塔有n层的时候,打印最优移动过程和最优移动总步数。
输入描述:
输入一个数n,表示塔层数
输出描述:
按样例格式输出最优移动过程和最优移动总步数

示例

输入:
2
复制
输出:
Move 1 from left to mid
Move 1 from mid to right
Move 2 from left to mid
Move 1 from right to mid
Move 1 from mid to left
Move 2 from ...

交互模式下,多行字符串表示

>>> text = 'put several'\    #使用\ 链接,这个是通用的,不光字符串,命令语句也可以。... 'to have then'>>> text
'put severalto have then'
>>> text =('first second ' 用() 这个可能只针对多行字符串了。不加括号,第一行内容,直接赋值给变量了。... 'third.')>>> text'first second third.'>>>

...

1074 Reversing Linked List (25 分)

#include <bits/stdc++.h>
#define LOCAL
using namespace std;

template<typename A, typename B> ostream& operator<<(ostream &os, const pair<A, B> &p) { return os << '(' << p.first << ", " << p.second << ')'; }
template<typename T_co...

文章标题:算法题:汉诺塔
文章链接:https://www.dianjilingqu.com/51228.html
本文章来源于网络,版权归原作者所有,如果本站文章侵犯了您的权益,请联系我们删除,联系邮箱:saisai#email.cn,感谢支持理解。
THE END
< <上一篇
下一篇>>