以下实验二选一。

1、使用队列实现迷宫算法,找到最短路径。

2、实现顺序队列和链队列的所有基本操作,InitQueue(&Q);DestroyQueue(&Q);ClearQueue(&Q);QueueEmpty(Q);QueueLength(Q);GetHead(Q, &e); EnQueue(&Q, e);DeQueue(&Q, &e);QueueTraverse(Q, visit())。

实验1:

 //
//by coolxxx
//
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define max(a,b) ((a)>(b)?(a):(b))
#define min(a,b) ((a)<(b)?(a):(b))
#define abs(a) ((a)>0?(a):(-(a)))
#define sqr(a) ((a)*(a))
#define swap(a,b) (a)^=(b),(b)^=(a),(a)^=(b)
#define eps 1e-8
#define MAX 0x7f7f7f7f
#define N 1004
#define M 1000004
int n,m,ans,lll,cas,cass;
int sx,sy,ex,ey;
int q[M][];
int fa[M];
int u[N][N];
char map[N][N];
int dx[]={-,,,};
int dy[]={,,-,};
void print(int x)
{
int i,j;
if(q[x][]==sx && q[x][]==sy)
{
printf("(%d,%d)->",sx,sy);
return;
}
print(fa[x]);
printf("(%d,%d)->",q[x][],q[x][]);
}
int spfa()
{
int i,j,x,y,xx,yy,h,t;
memset(q,,sizeof(q));
h=;t=;
q[][]=sx;q[][]=sy;
u[sx][sy]=;
while(h!=t)
{
x=q[++h][];y=q[h][];
if(x==ex && y==ey)
{
print(fa[t]);
printf("(%d,%d)\n",ex,ey);
return ;
}
for(i=;i<;i++)
{
xx=x+dx[i];
yy=y+dy[i];
if(xx< || yy< || xx>n || yy>m || map[xx][yy]=='' || u[xx][yy])continue;
q[++t][]=xx;
q[t][]=yy;
fa[t]=h;
u[xx][yy]=;
}
}
return ;
}
int main()
{
// freopen("1.txt","r",stdin);
int i,j;
scanf("%d",&n);
m=n;sx=;sy=;ex=n;ey=m;
for(i=;i<=n;i++)
{
scanf("%s",map[i]+);
puts(map[i]+);
}
if(map[sx][sy]=='' || map[ex][ey]==''){puts("No way");return ;}
if(!spfa())puts("No way");
return ;
}
/* */

实验2:

可参考STL queue

最新文章

  1. Windows下构建ASP.NET Core+Code First+Docker
  2. MessageBox的常用方法
  3. poj 3728(LCA + dp)
  4. Spring Data JPA 的配置文件 已经数据库的状态
  5. 关于if(a&lt;b&lt;c)判断的问题
  6. 解析利用wsdl.exe生成webservice代理类的详解
  7. 【Android Demo】通过WebService获取今日天气情况
  8. 他们在军训,我在搞 OI(一)
  9. Codeforces Round #288 (Div. 2) C. Anya and Ghosts 模拟
  10. 项目中常用SQL语句总结
  11. 编程规范之 if 语句的简单规则
  12. mongoose populate
  13. intellij idea on update action\on frame deactivation ||Servlet 页面不同步问题
  14. 工具系列-idea破解
  15. IE提示“Internet Explorer已限制此网页运行脚本或ActiveX控件”的解决办法
  16. vue:vuex中mapState、mapGetters、mapActions辅助函数及Module的使用
  17. python 第三方包安装
  18. Hdoj 1879.继续畅通工程 题解
  19. 【原】cpu消耗高,查看对应的线程栈信息
  20. 51nod 1437 迈克步 单调栈

热门文章

  1. BZOJ 2140 稳定婚姻 ——二分图
  2. POJ 1125 Stockbroker Grapevine【floyd】
  3. 【2018.10.15】noip模拟赛Day1
  4. poj 3525 求凸包的最大内切圆
  5. Python 和 Elasticsearch 构建简易搜索
  6. 在C#中使用Json.Net进行序列化和反序列化及定制化
  7. idea修改变量及其引用
  8. 转:HtmlCxx用户手册
  9. 简化LINUX的命令输入 简化linux命令 快捷键 短路径
  10. 使用ftrace学习linux内核函数调用