频道栏目
首页 > 资讯 > 其他 > 正文

实现汉诺塔(Hanoi)问题(堆栈、递归)

17-06-20        来源:[db:作者]  
收藏   我要投稿

实现汉诺塔(Hanoi)问题(堆栈、递归),自己写了一个汉诺塔问题的小程序,定义了一个堆栈类,然后用递归实现。主要想练下手,深入理解链栈、递归这些问题。直接上代码,写的不好的地方请指导。

#include 
using namespace std;
typedef char ElemType;
//定义链表结构
typedef struct LinkNode{
	LinkNode* next;
	ElemType data;
}LinkNode,*Linklist;
//定义链栈类
class Stack{
public:
	Linklist top;
	int stack_size;	
	Stack():stack_size(0),top(NULL){};
public:
	void PushStack(ElemType ele);
	ElemType PopStack();
	void PrintStack();
};
//推入元素
void Stack::PushStack(ElemType ele)
{
	Linklist ss=(Linklist)malloc(sizeof(LinkNode));
	ss->data=ele;
	ss->next=top;
	top=ss;
	stack_size++;
}
//推出元素
ElemType Stack::PopStack()
{
	ElemType val;
	Linklist p;
	if (top==NULL)
	{
		cout<<"STACK IS EMPTY!"<data;
	top=top->next;
	free(p);
	stack_size--;
	return val;
}
//打印链栈里所有的元素(遍历实现)
void Stack::PrintStack()
{
	if (stack_size!=0)
	{
		Linklist p=top;
		while(p)
		{
			cout<data<<"  ";
			p=p->next;
		}
		cout<<>

 

相关TAG标签
上一篇:Debian本地源的创建及应用
下一篇:面试29: 数组中出现次数超过一半的数字
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站