数据结构算法-3
来源:互联网 发布:网络带来的利与弊800 编辑:程序博客网 时间:2024/06/09 18:01
3.n阶Hanoi塔问题的C函数
void hanoi(int n,char x,char y,char z)
{
//将塔座x上按直径由小到大且自上而下编号为1到n个n个圆盘按规则搬到塔座z上,y
//可用作辅助塔座,搬动操作move(x,n,z)可定义为(c是初值为0的全局变量,对搬动计数)
if(n==1)
move(x,1,z);
else
{
hanoi(n-1,x,z,y);//将x上编号为1至n-1的圆盘移到y,z作辅助塔
move(x,n,z);//将编号为n的圆盘从x移到z
hanoi(n-1,y,x,z);//将y上编号为1至n-1的圆盘移到z,x作辅助塔
}
}
*******************************************************************************************
1. 队列基本操作算法
Status InitQueue(LinkQueue &Q)
{
//构造一个空队列Q
Q.front =Q.rear = (QueuePtr)malloc(sizeof(QNode));
if(!Q.front) exit (OVERFLOW);//存储分配失败
Q.front->next = NULL;
return OK;
}
Status DestroyQueue(LinkQueue&Q)
{
//销毁队列Q
while(Q.front)
{
Q.rear= Q.front->next;
free(Q.front);
Q.front = Q.rear;
}
return OK;
}
Status EnQueue(LinkQueue&Q,QElemType e)
{//插入元素e为Q的新的队尾元素
p= (QueuePtr)malloc(sizeof(QNode));
if(!p) exit(OVERFLOW);//存储分配失败
p->data = e;
p->next = NULL;
Q.rear->next = p;
Q.rear = p;
return OK;
}
Status DeQueue(LinkQueue&Q,QElemType &e)
{
//若队列不空,则删除Q的队头元素,用e返回其值,并返回OK,否则返回ERROR
if(Q.front==Q.rear) return ERROR;
p = Q.front->next;
e = p->data;
Q.front->next = p->next;
if(Q.rear ==p) Q.rear = Q.front;
free(p);
return OK;
}- 数据结构算法3_2
- 数据结构算法-3
- 数据结构与算法3:KMP
- 涂鸦数据结构3 算法相关
- 【数据结构和算法】Day 3
- 数据结构&算法
- 数据结构算法
- 数据结构算法
- 数据结构算法
- 数据结构算法
- 数据结构算法
- 数据结构算法
- 数据结构算法
- 数据结构 算法
- 数据结构-算法
- 数据结构算法
- 数据结构-算法
- 数据结构+算法
- Java异常(二) 《Effective Java》中关于异常处理的几条建议
- 用OpenSceneGraph实现的NeHe OpenGL教程 - 第十课
- iOS多线程的初步研究(五)-- 如何让NSURLConnection在子线程中运行
- 能够ping通,但是不能telnet,不能ssh -SuSE
- Integer.valueOf(String)不同JDK版本的差异
- 数据结构算法-3
- Android UI开发第二十四篇——Action Bar
- iOS面试题(经典题型)
- Android Bluetooth开发
- 如何理解Netfilter中的连接跟踪机制
- NoSQL vs SQL(NoSQL产品简介+实验)
- iOS多线程的初步研究(六)-- NSOperation
- 记录一次MVC3升级MVC4遇到的问题
- 2014年01月陕西综合性网站及社区网站综合影响力排名