j.c.Warnsdorff马踏棋盘算法
2015-10-21 18:30
344 查看
/*#include
int x;//马的x方向
int y;//马的y方向
};
typedef struct Queue{
struct point queue[MaxQueueSize];
int front;//头指针
int rear;//尾指针
int tag;//设置标记位
}SeqCQueue;
//初始化队列操作
void QueueInitiate(SeqCQueue *Q){
Q->front=0;
Q->rear=0;
Q->tag=0;
}
//判断队列是否为空
int QueueNotEmpty(SeqCQueue Q){
if(Q.front==Q.rear&&Q.tag==0)
return 0;
else
return 1;
}
//入队操作
void QueueAppend(SeqCQueue *Q,point x){
if(Q->tag==1&&Q->front==Q->rear){
printf(“队列已满,无法插入!\n”);
}else {
Q->queue[Q->rear]=x;
Q->rear=(Q->rear+1)%MaxQueueSize;
Q->tag=1;
}
}
//出队操作
void QueuePop(SeqCQueue *Q,point *d){
if(Q->tag==0&&Q->front==Q->rear){
printf(“队列已空,无元素可以出队列!\n”);
}else {
*d=Q->queue[Q->front];
Q->front=(Q->front+1)%MaxQueueSize;
Q->tag=0;
}
}
#include
include”queue.h”
struct point {int x;//马的x方向
int y;//马的y方向
};
typedef struct Queue{
struct point queue[MaxQueueSize];
int front;//头指针
int rear;//尾指针
int tag;//设置标记位
}SeqCQueue;
//初始化队列操作
void QueueInitiate(SeqCQueue *Q){
Q->front=0;
Q->rear=0;
Q->tag=0;
}
//判断队列是否为空
int QueueNotEmpty(SeqCQueue Q){
if(Q.front==Q.rear&&Q.tag==0)
return 0;
else
return 1;
}
//入队操作
void QueueAppend(SeqCQueue *Q,point x){
if(Q->tag==1&&Q->front==Q->rear){
printf(“队列已满,无法插入!\n”);
}else {
Q->queue[Q->rear]=x;
Q->rear=(Q->rear+1)%MaxQueueSize;
Q->tag=1;
}
}
//出队操作
void QueuePop(SeqCQueue *Q,point *d){
if(Q->tag==0&&Q->front==Q->rear){
printf(“队列已空,无元素可以出队列!\n”);
}else {
*d=Q->queue[Q->front];
Q->front=(Q->front+1)%MaxQueueSize;
Q->tag=0;
}
}
#include
相关文章推荐
- 光照阴影镜面反射综合算法
- 常用分类器的效果对比
- Linux下/proc目录简介
- 集成开发环境
- MySQL实战课程---通过录像手把手带您学会当前互联网流行架构
- 自己写的一本nginx教程,希望可以交流一下
- PAT1033 旧键盘打字(20)
- sass and compass
- C#.NET如何不序列化字段、属性
- 【转】Android 音量键+电源键 截屏代码小结
- BestCoder Round #60.1003.GT and set/HDU5506 dfs
- 微信填坑日志
- CC学习笔记1:安全审计类
- [Q]如何使用自定义保存位置
- [LeetCode] Valid Anagram
- ubuntu server 10.04安装全攻略
- 嵌套重载以及模板特化
- incompatible character encodings: UTF-8 and ASCII-8BIT
- 几种基础的排序算法
- 有关内存对齐的问题