XMU C语言程序设计实践(4)
来源:互联网 发布:linux创建物理卷 编辑:程序博客网 时间:2024/05/16 06:31
以下实验二选一。
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 1000004int n,m,ans,lll,cas,cass;int sx,sy,ex,ey;int q[M][2];int fa[M];int u[N][N];char map[N][N];int dx[]={-1,1,0,0};int dy[]={0,0,-1,1};void print(int x){int i,j;if(q[x][0]==sx && q[x][1]==sy){printf("(%d,%d)->",sx,sy);return;}print(fa[x]);printf("(%d,%d)->",q[x][0],q[x][1]);}int spfa(){int i,j,x,y,xx,yy,h,t;memset(q,0,sizeof(q));h=0;t=1;q[1][0]=sx;q[1][1]=sy;u[sx][sy]=1;while(h!=t){x=q[++h][0];y=q[h][1];if(x==ex && y==ey){print(fa[t]);printf("(%d,%d)\n",ex,ey);return 1;}for(i=0;i<4;i++){xx=x+dx[i];yy=y+dy[i];if(xx<1 || yy<1 || xx>n || yy>m || map[xx][yy]=='1' || u[xx][yy])continue;q[++t][0]=xx;q[t][1]=yy;fa[t]=h;u[xx][yy]=1;}}return 0;}int main(){//freopen("1.txt","r",stdin);int i,j;scanf("%d",&n);m=n;sx=1;sy=1;ex=n;ey=m;for(i=1;i<=n;i++){scanf("%s",map[i]+1);puts(map[i]+1);}if(map[sx][sy]=='1' || map[ex][ey]=='1'){puts("No way");return 0;}if(!spfa())puts("No way");return 0;}/**/
实验2:
可参考STL queue
阅读全文
0 0
- XMU C语言程序设计实践(4)
- XMU C语言程序设计实践(1)
- XMU C语言程序设计实践(2)
- XMU C语言程序设计实践(3)
- XMU C语言程序设计实践(5)
- XTU C语言程序设计实践作业4
- C语言程序设计实践(OJ)-初识函数
- C语言程序设计实践(OJ)-数组初步
- C语言程序设计实践(OJ)-字符串
- C语言程序设计实践(OJ)-结构体
- C语言程序设计(4)
- C语言程序设计实践-C语言应用实践
- C 语言程序设计实践 3.1 ABS
- C 语言程序设计实践 3.2 Add
- C 语言程序设计实践 3.3 Area
- C 语言程序设计实践 3.4 Change
- C 语言程序设计实践 3.5 Compare
- C 语言程序设计实践 3.6 EAX
- 第一行代码+Android+第2版 笔记第三天
- python笔记-008-★★★补充
- eclipse 插件配置
- 89.java.lang.reflect.invocationTargetException JDBC连接带实例名的SQL Server
- 基于S3c2440的LCD驱动
- XMU C语言程序设计实践(4)
- java中JVM的原理
- poll、select和epoll的区别
- [dSYM 分析命令集合]
- 常用方法记录:java读取Excel
- 根据train_val.prototxt获取deploy.prototxt
- 边缘发亮和描边初次试水
- Eclipse中Java文件图标由实心J变成空心J的问题
- 面试题31:连续子数组的最大和