布线问题是宽度优先搜索,和迷宫问题有点不一样。
以下代码中,我的输入顺序可能不太一样,还有显示也有点不一样。示例截图在后面。
#include <iostream>
#include <stdlib.h>
#include <windows.h>
using namespace std;
struct Position {
int row;
int col;
};
template <class T> class Queue{
public:
Queue()
{
rear = Front = 0;
maxSize = 100;
elements = new T[maxSize];
}
~Queue(){ delete []elements; }
bool IsEmpty()
{
if(Front == rear)return true;
else return false;
}
bool IsFull()
{
if((rear + 1) % maxSize == Front) return true;
else return false;
}
bool InSert(T &x)
{
if(!IsFull())
{
elements[rear] = x;
rear = (rear + 1) % maxSize;
return true;
}
else return false;
}
bool Delete(T &x)
{
if(!IsEmpty())
{
x = elements[Front];
Front = (Front + 1) % maxSize;
return true;
}
else return false;
}
void makeEmpty(){ Front = rear; }
private:
T *elements;
int maxSize;
int Front, rear;
};
int main()
{
int n, m;
int row1, col1, row2, col2, num, row, col;
cout<<"请输入方格阵列的行和列:"<<endl;
cin>>n;
cin>>m;
cout<<"您输入的行和列是: "<<n<<" "<<m<<endl;
cout<<"请设置起点位置:"<<endl;
cin>>row1>>col1;
while(1)
{
if((row1 >= 1)&&(row1 <= 9)&&(col1 >= 1)&&(col1 <= 9))break;
else cout<<"您输入的位置不对,请重新输入:&#