91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

棧的應用——迷宮

發布時間: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

凤山市| 图木舒克市| 拉萨市| 昭觉县| 彭泽县| 慈溪市| 潼关县| 武安市| 鹿邑县| 石河子市| 开封市| 社会| 藁城市| 静安区| 长垣县| 德庆县| 柳州市| 固始县| 潢川县| 峡江县| 佛冈县| 宁陕县| 光山县| 金乡县| 德州市| 喀喇沁旗| 繁峙县| 肇州县| 哈尔滨市| 沭阳县| 太白县| 凤凰县| 镶黄旗| 嘉黎县| 沐川县| 阿鲁科尔沁旗| 金坛市| 独山县| 海盐县| 绵竹市| 旅游|