不知道这为什么跟数据结构有关系

学了栈,老师让我们写迷宫程序,我想了好久还是不明白,它写栈有什么关系...以下是我的程序,...

#include<iostream>
using std::cout;
using std::cin;
using std::endl;


int main()
{
char**a;
int x;
int y;

cout<<"<--请输入迷宫的行数与列数-->"<<endl;  
cin>>x>>y;
a=new char*[x+2];
for(int i=0;i<(x+2);i++)
a[i]=new char[y+2];
cout<<"<--请输入迷宫(0表示通路,*表示墙)-->"<<endl;
for(int i=1;i<=x;i++)
for(int j=1;j<=y;j++)
cin>>a[i][j];
for(int i=0;i<(x+2);i++)
{
a[i][0]='*';
a[i][y+1]='*';
}
for(int j=0;j<(y+2);j++)
{
a[0][j]='*';
a[x+1][j]='*';
}
a[1][0]='0';
a[x][y+1]='0';
cout<<"<--你输入的迷宫为:"<<endl;
for(int i=0;i<(x+2);i++)
{
for(int j=0;j<(y+2);j++)
cout<<a[i][j];
cout<<endl;
}


if(a[1][1]!='0'||a[x][y]!='0')
{
   cout<<"<--此迷宫无解-->";
   return 0;
}
int i=1;
int j=0;
cout<<i<<","<<j;
while(a[x][y+1]!='.')
{
if(a[i][j+1]!='.'&&a[i][j+1]!='*'&&a[i][j+1]!='+')
 {
  a[i][j]='.';
     j=j+1;
     cout<<"右";
  cout<<i<<","<<j;
 }
else if(a[i-1][j]!='.'&&a[i-1][j]!='*'&&a[i-1][j]!='+')
 {
    a[i][j]='.';
 i=i-1;
 cout<<"上";
 cout<<i<<","<<j;
 }
else if(a[i][j-1]!='.'&&a[i][j-1]!='*'&&a[i][j-1]!='+')
 {
    a[i][j]='.';
 j=j-1;
 cout<<"左";
 cout<<i<<","<<j;
 }
else if(a[i+1][j]!='.'&&a[i+1][j]!='*'&&a[i+1][j]!='+')
 {
    a[i][j]='.';
 i=i+1;
 cout<<"下";
 cout<<i<<","<<j;
 }
else
 {
    a[i][j]='+';
 cout<<"返回";
  if((a[i][j+1]!='*')&&(a[i][j+1]!='+')) j=j+1;
       else if((a[i+1][j]!='*')&&(a[i+1][j]!='+')) i=i+1;
       else if((a[i][j-1]!='*')&&(a[i][j-1]!='+')) j=j-1;
       else if((a[i-1][j]!='*')&&(a[i-1][j]!='+')) i=i-1;
       x=i;y=j;
       }
   if(i==1&&j==0) break;
}
if(i==1&&j==0)
{
   cout<<"--------此迷宫没有出路------------"<<endl;
}
else
{
   cout<<endl<<"------找到迷宫出路,如图所示:----------"<<endl;
   for(int k=0;k<x+2;k++)
   {
    for(int h=0;h<y+2;h++)
     cout<<a[k][h]<<" ";
      cout<<endl;
 }

}
return 0;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值