想要指点吗?
我在做这些题目的时候有个经验,就是先把这些数据结构写成函数的形式~或者你有心情就把他们写成类
这样你就可以比较容易实现软件的重用。你像你这样学数据结构,每写一个程序就要重新写一个线性表、栈等数据结构,这样是很费时间的事情。
淘宝杜琨
既然被问到了就不能不说呢~
1.这个问题其实很简单,就是利用void *指针万能的特性来实现指针转换
2.汉诺塔的算法~~
| | |
| | |
| | |
--- --- ---
1 2 3
假设有N个盘子需要移动,而且柱子之间是循环的,就是说
1号柱子上的盘子左移一格则会移到3号柱子上;
反之,3号柱子的盘子右移一格则会移动到1号柱子上;
那么
如果N为偶数:奇数号盘右移动一个柱子;偶数号盘左移动一个柱子;
如果N为奇数:奇数号盘左移一个柱子;偶数号盘右移动一个柱子
移动方式是
3根柱子中所能移动的最小号盘子 ->
3根柱子中所能移动的最大号盘子 ->
3根柱子中所能移动的最小号盘子 ->
3根柱子中所能移动的最大号盘子 ->
如此反复,直到目标柱子上的柱子数量为N为止
如果还不明白这个算法的意思还可以再问。