资源简介
不仅能搜索出最短路径长,还能输出具体路径
代码片段和文件信息
// Lee‘s wire router
#include
#include “wire.h“
void InputGrid(Position &start Position &finishint **&gridint &mint &n)
{
cout << “Enter grid size“ << endl;
cin >> m >>n;
while((m<2&&n<2)||m<1||n<1)
{
cout<<“ERROR!“< cout << “Enter grid size“ << endl;
cin>>n>>n;
}
cout << “Enter start“ << endl;
cin >> start.row >> start.col;
cout << “Enter finish“ << endl;
cin >> finish.row >> finish.col;
Make2DArray(grid m+2 n+2);
cout << “Enter wiring grid“ << endl;//注意障碍赋值1,其他为0
for (int i=1; i<=m; i++)
for (int j=1; j<=n; j++) cin >> grid[i][j];
// initialize wall of blocks around grid
for (int a = 0; a <= m+1; a++)
grid[a][0] = grid[a][n+1] = 1; // left and right
for (int b = 0; b <= n+1; b++)
grid[0][b] = grid[m+1][b] = 1; // bottom and top
}
bool OutputPath(int PathLen Position *pathint sum)
{// Output wire path.
cout << “The wire path is“ << endl<<“NO.“< for (int i=0; i < PathLen+1; i++)
cout << (path[i]).row <<“ “<< (path[i]).col << endl;
cout<<“next?“< char c;
while(cin>>c)
{
if(c==‘Y‘||c==‘y‘)
return true;
else if(c==‘N‘||c==‘n‘)
return false;
else
cout<<“ERROr!---Y or N“< }
return true;
}
void main(void)
{
Position startfinish;
int **grid;
int m n;
InputGrid(startfinishgridmn);
Wire path(gridstartfinishmn);
int information=path.FindPath();
if(information==1)//此时无最短路径
cout<<“no path“< else if(information==2)//此时查找出几条路径后,已再无其他最短路径
cout<<“no path already!“< //PS:information为0时是选择不再查找的情况
//本来FindPath()这个函数是无返回值的,但是为了把界面的代码全放到main.cpp中只能这样
}
/*
7 7
3 2
4 6
0 0 1 0 0 0 0
0 0 1 1 0 0 0
0 0 0 0 1 0 0
0 0 0 1 1 0 0
1 0 0 0 1 0 0
1 1 1 0 0 0 0
1 1 1 0 0 0 0
*/
/*
5 5
2 2
3 3
0 1 1 0 0
0 0 1 0 1
0 1 0 0 0
1 0 0 0 0
0 0 1 1 1
*/
/*
20 20
1 1
1 19
0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 1
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 1
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 1
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 1
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1
*/
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 200743 2010-05-30 09:37 wire队列类结构加强版\wire\Debug\main.exe
文件 1094620 2010-05-30 09:37 wire队列类结构加强版\wire\Debug\main.ilk
文件 44599 2010-05-30 09:37 wire队列类结构加强版\wire\Debug\main.obj
文件 1366124 2010-05-30 09:36 wire队列类结构加强版\wire\Debug\main.pch
文件 599040 2010-05-30 09:37 wire队列类结构加强版\wire\Debug\main.pdb
文件 82944 2010-05-30 09:38 wire队列类结构加强版\wire\Debug\vc60.idb
文件 94208 2010-05-30 09:37 wire队列类结构加强版\wire\Debug\vc60.pdb
文件 2246 2010-05-25 19:30 wire队列类结构加强版\wire\lqueue.h
文件 2898 2010-05-30 09:37 wire队列类结构加强版\wire\main.cpp
文件 3436 2010-05-30 09:38 wire队列类结构加强版\wire\main.dsp
文件 533 2010-05-30 09:38 wire队列类结构加强版\wire\main.dsw
文件 50176 2010-05-30 09:38 wire队列类结构加强版\wire\main.ncb
文件 48640 2010-05-30 09:38 wire队列类结构加强版\wire\main.opt
文件 1119 2010-05-30 09:37 wire队列类结构加强版\wire\main.plg
文件 311 2010-05-25 19:30 wire队列类结构加强版\wire\make2db.h
文件 249 2010-05-25 19:30 wire队列类结构加强版\wire\node.h
文件 3439 2010-05-25 19:30 wire队列类结构加强版\wire\wire.cpp
文件 4260 2010-05-28 13:26 wire队列类结构加强版\wire\wire.dsp
文件 531 2010-05-28 13:26 wire队列类结构加强版\wire\wire.dsw
文件 3919 2010-05-30 09:36 wire队列类结构加强版\wire\wire.h
文件 33792 2010-05-28 13:26 wire队列类结构加强版\wire\wire.ncb
文件 48640 2010-05-28 13:26 wire队列类结构加强版\wire\wire.opt
文件 1029 2010-05-25 20:13 wire队列类结构加强版\wire\xcept.h
目录 0 2010-05-30 09:37 wire队列类结构加强版\wire\Debug
目录 0 2010-05-30 09:38 wire队列类结构加强版\wire
目录 0 2010-05-30 09:04 wire队列类结构加强版
----------- --------- ---------- ----- ----
3687496 26
相关资源
- 1. 构造简单网络,仿真M/M/1/K队列模
- 排队论M/G/1队列模型
- MSMQ、RabbitMQ、ActiveMQ消息队列调试工具
- PI解决队列堵塞问题
- 多线程依次循环打印26个英文字母
- OPNET路由DIjkstra实现跳数与队列延时代
- ucos中的消息队列代码详解
- 操作系统实验_多级反馈队列调度算法
- 多级反馈队列调度算法的实现
- 使用消息队列与共享内存完成一个简
- 线程安全型队列的实现
- 多级反馈队列调度算法实现
- 利用栈和队列实现后缀表达式转中缀
- 单队列单服务台/多服务台排队系统
- c编写的数据结构创建顺序表、链表、
- 用循环队列实现银行排队系统VIP客户
- 银行家算法&多级队列调度算法内含源
- 用队列的数据结构打印杨辉三角
- 判断回文用到栈和队列
- IBM MQ队列配置详细讲解
- 编写自定义的消息队列
- 使用org.eclipse.paho.client.mqttv3实现mqtt
- uCOS-III及循环队列串口收发
- Labview 队列与变体使用
- STM32串口环形队列程序
- labview之队列使用(队列.vi)
- Redis 用于消息队列的存储
- linux使用消息队列实现进程间双向通信
- 数据结构实验报告2-栈与队列-队列基
- 球钟问题解决
评论
共有 条评论