亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

棧的應用——迷宮

發布時間:2020-10-11 21:25:38 來源:網絡 閱讀:227 作者:LOVEMERIGHT 欄目:編程語言

棧和隊列是數據結構中重要的部分,通過棧來實現走出迷宮。

1代表不能通行,0代表可以通行,將走的迷宮路線坐標不斷地存入棧中,并賦成2,分別判斷各個方向,如果是0則前進,1則判斷下個方向。

迷宮的地圖可以通過新建記事本,將地圖輸入。

代碼實現:

struct Pos
{
	int _row;//行
	int _col;//列
};

bool CheckIsAccess(int* a,int n,Pos next)//判斷是否超出迷宮范圍,是否可以前進
{
	if((next._row>=0)&&(next._row<n)&&\
		(next._col>=0)&&(next._col<n)&&\
		(a[next._row*n+next._col]==0))
		return true;
	else
		return false;
}


bool MazePath(int* a,int n,Pos& entry,stack<Pos>& path)
{
	Pos cur=entry;
	path.push(cur);
	while(!path.empty())
	{
		a[cur._row*n+cur._col]=2;//走過的地方賦成2
		if(cur._row==n-1)//判斷是否到達出口
		{
			return true;
		}
		//分別判斷各個方向哪個可以前進
		//上
		Pos next=cur;
		next._row--;
		if(CheckIsAccess(a,n,next))
		{
			cur=next;
			path.push(cur);
			continue;
		}
		//下
		next=cur;//將位置恢復到cur,再進行其他方向的判斷
		next._row++;
		if(CheckIsAccess(a,n,next))
		{
			cur=next;
			path.push(cur);
			continue;
		}
		//左
		next=cur;//將位置恢復到cur,再進行其他方向的判斷
		next._col--;
		if(CheckIsAccess(a,n,next))
		{
			cur=next;
			path.push(cur);
			continue;
		}
		//右
		next=cur;//將位置恢復到cur,再進行其他方向的判斷
		next._col++;
		if(CheckIsAccess(a,n,next))
		{
			cur=next;
			path.push(cur);
			continue;
		}
		cur=path.top();//到達死角,回溯
		path.pop();

	}
}

void PrintMaze(int* a,int n)//打印迷宮
{
	for(int i=0;i<n;i++)
	{
		for(int j=0;j<n;j++)
		{
			cout<<a[i*n+j]<<" ";
		}
		cout<<endl;
	}
}
void GetMaze(int* a,int n)
{
	FILE* fout=fopen("MazeMap.txt","r");
	assert(fout);
	for(int i=0;i<n;i++)
	{
		for(int j=0;j<n;)
		{
			char ch=fgetc(fout);
			if(ch=='0'||ch=='1')//只有是1或0的時候才將其存到二維數組中
			{
				a[i*n+j]=ch-'0';
				++j;
			}
			else
			{
				continue;
			}
		}

	}
	fclose(fout);
}


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

新密市| 赤峰市| 柳江县| 醴陵市| 民乐县| 绥德县| 博客| 南澳县| 田阳县| 清镇市| 东兰县| 阿拉尔市| 南汇区| 上林县| 崇州市| 秀山| 怀来县| 分宜县| 小金县| 安多县| 徐水县| 阿鲁科尔沁旗| 南皮县| 余庆县| 贡觉县| 兰考县| 朝阳市| 三河市| 黔江区| 响水县| 景泰县| 普安县| 健康| 措勤县| 建德市| 双江| 万源市| 莱西市| 同心县| 运城市| 克拉玛依市|