亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 迷宮問題.cpp

?? 這是我個人做的在vc環境下的迷宮問題的實現。各位可以參考或指教!
?? CPP
字號:
//base.h
#include <stdio.h>
#include< iostream.h>
#include <stdlib.h>
#include <string.h>
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define OVERFLOW -2
typedef int Status;
 
//stack.h
//#include "base.h"
#define INIT_SIZE 100 //存儲空間初始分配量
#define INCREMENT 10  //存儲空間分配增量
typedef struct{       //迷宮中r行c列的位置
	int r;
	int c;
}PostType;
typedef struct{
	int ord;      //當前位置在路徑上的序號
	PostType seat;//當前坐標
	int di;       //往下一坐標的方向
}SElemType;        //棧元素類型
typedef struct{
	SElemType* base;//?;?構造前銷毀后為空
	SElemType* top;//棧頂
	int stackSize;  //棧容量
}Stack;             //棧類型
Status InitStack(Stack &S){	//構造空棧s
	S.base=(SElemType*)malloc(INIT_SIZE *sizeof(SElemType));
	if(!S.base)
		exit(OVERFLOW);//存儲分配失敗
	S.top=S.base;
	S.stackSize=INIT_SIZE;
	return OK;
}//InitStack
Status StackEmpty(Stack S){	
//若s為空返回TRUE,否則返回FALSE
	if(S.top==S.base)
		return TRUE;
	return FALSE;
}//StackEmpty
Status Push(Stack &S,SElemType e){
 //插入元素e為新的棧頂元素
	if(S.top-S.base >=S.stackSize){//棧滿,加空間
		S.base=(SElemType *)realloc(S.base,(S.stackSize+INCREMENT)*sizeof(SElemType));
		if(!S.base)
			exit(OVERFLOW);   //存儲分配失敗
		S.top=S.base+S.stackSize;
		S.stackSize+=INCREMENT;
	}
	*S.top++=e;
	return OK;
}//push
Status Pop(Stack &S,SElemType &e){//若棧不空刪除棧//頂元素用e返回并返回OK,否則返回ERROR
	if(S.top==S.base)
		return ERROR;
	e=*--S.top;
	return OK;
}//Pop
Status DestroyStack(Stack &S){//銷毀棧S,
	free(S.base);
	S.top=S.base;
	return OK;
}//DestroyStack
 
//maze.cpp
//#include "stack.h"
#define MAXLEN 10//迷宮包括外墻最大行列數目
typedef struct{
	int r;
	int c;
	char adr[MAXLEN][MAXLEN];//可取' ''*' '@' '#'
}MazeType;   //迷宮類型
Status InitMaze(MazeType &maze){
//初始化迷宮若成功返回TRUE,否則返回FALSE
	int m,n,i,j;
	cout<< "Enter row and column numbers: ";
	cin>>maze.r>>maze.c; //迷宮行和列數
	for(i=0;i<=maze.c+1;i++){//迷宮行外墻
		maze.adr[0][i]='#';
		maze.adr[maze.r+1][i]='#';
	}//for
	for(i=0;i<=maze.r+1;i++){//迷宮列外墻
		maze.adr[i][0]='#';
		maze.adr[i][maze.c+1]='#';
	}
	for(i=1;i<=maze.r;i++)
		for(j=1;j<=maze.c;j++)
			maze.adr[i][j]=' ';//初始化迷宮
	cout<<"Enter block's coordinate((-1,-1) to end): ";
	cin>>m>>n;//接收障礙的坐標
	while(m!=-1){
		if(m>maze.r || n>maze.c)//越界
			exit(ERROR);
		maze.adr[m][n]='#';//迷宮障礙用'#'標記
		cout<<"Enter block's coordinate((-1,-1) to end): ";
		cin>>m>>n;
	}//while
	return OK;
}//InitMaze	
Status Pass(MazeType maze,PostType curpos){
//當前位置可通則返回TURE,否則返回FALSE
	if(maze.adr[curpos.r][curpos.c]==' ')//可通
		return TRUE;
	else
		return FALSE;
}//Pass
Status FootPrint(MazeType &maze,PostType curpos){
//若走過并且可通返回TRUE,否則返回FALSE
//在返回之前銷毀棧S
	maze.adr[curpos.r][curpos.c]='*';//"*"表示可通
	return OK;
}//FootPrint
PostType NextPos(PostType &curpos,int i){
//指示并返回下一位置的坐標
	PostType cpos;
	cpos=curpos;
	switch(i){        //1.2.3.4分別表示東,南,西,北方向
		case 1 : cpos.c+=1; break;
		case 2 : cpos.r+=1; break;
		case 3 : cpos.c-=1; break;
		case 4 : cpos.r-=1; break;
		default: exit(ERROR);	
	}
	return cpos;
}//Nextpos
Status MarkPrint(MazeType &maze,PostType curpos){
//曾走過但不是通路標記并返回OK
	maze.adr[curpos.r][curpos.c]='@';//"@"表示曾走過但不通
	return OK;
}//MarkPrint
Status MazePath(MazeType &maze,PostType start,PostType end){
	//若迷宮maze存在從入口start到end的通道則求得一條存放在棧中
	//并返回TRUE,否則返回FALSE
	Stack S;
	PostType curpos;
	int curstep;//當前序號,1.2.3.4分別表示東,南,西,北方向
	SElemType e;
	InitStack(S);
	curpos=start; //設置"當前位置"為"入口位置"
	curstep=1;   //探索第一步
	do{
		if(Pass(maze,curpos)){//當前位置可以通過,
//即是未曾走到過的通道
			FootPrint(maze,curpos);//留下足跡
			e.ord=curstep;
			e.seat=curpos;
			e.di=1;
			Push(S,e);              //加入路徑
			if(curpos.r==end.r&& curpos.c==end.c)
if(!DestroyStack(S))//銷毀失敗
exit(OVERFLOW);
else 
	 return TRUE; //到達出口
			else{
				curpos=NextPos(curpos,1); 
//下一位置是當前位置的東鄰
				curstep++;       //探索下一步
			}//else
		}//if
		else{    //當前位置不通
			if(!StackEmpty(S)){
				Pop(S,e);
				    while(e.di==4
&& !StackEmpty(S)){
					MarkPrint(maze,e.seat);
					Pop(S,e);        
//留下不能通過的標記,并退一步
				}//while
				if(e.di < 4){
					e.di++;//換下一個方向探索
					Push(S,e);            
					curpos=NextPos(e.seat,e.di);//設定當前位置是該
//新方向上的相鄰
				}//if
			}//if
		}//else
	}while(!StackEmpty(S));
	if(!DestroyStack(S))//銷毀失敗
	   exit(OVERFLOW);	    
 else 
	   return FALSE;
}//MazePath
void PrintMaze(MazeType &maze){
//將標記路徑信息的迷宮輸出到終端(包括外墻)
	int i,j;
	cout<<"\nShow maze path(*---pathway):\n\n";
	cout<<"  ";
	for(i=0;i<=maze.r+1;i++)//打印列數名
		cout<<" "<<i;
	cout<<"\n"<<"\n";
	for(i=0;i<=maze.r+1;i++){
		cout<<" "<<i;//打印行名 
		for(j=0;j<=maze.c+1;j++)
	cout<<" "<<maze.adr[i][j];//輸出迷宮//當前位置的標記          
		cout<<"\n"<<"\n";
	}
}//PrintMaze
 
void main(){     //主函數
	MazeType maze;
	PostType start,end;
	char cmd;
	do{
		cout<<"-------FOUND A MAZEPATH--------\n";
		if(!InitMaze(maze)){  //初始化并創建迷宮
		cout<<"\nInitialization errors!!!\n";
			exit(OVERFLOW);     //初始化錯誤
		}
		do{                 //輸入迷宮入口坐標
			cout<<"\nEnter entrance coordinate of the maze: ";
			cin>>start.r>>start.c;
			if(start.r>maze.r || start.c>maze.c){
				cout<<"\nBeyond the maze!!!\n";
				continue;
			}
		}while(start.r>maze.r || start.c>maze.c);
		do{                 //輸入迷宮出口坐標
			cout<<"\nEnter exit coordinate of the maze: ";
			cin>>end.r>>end.c;
			if(end.r>maze.r || end.c>maze.c){
				cout<<"\nBeyond the maze!!!\n";
				continue;
			}
		}while(end.r>maze.r || end.c>maze.c);
		if(!MazePath(maze,start,end))//迷宮求解
			cout<<"\nNo path from entrance to exit!\n";
		else
			PrintMaze(maze);//打印路徑
	cout<<"\nContinue?(y/n): ";
		cin>>cmd;
	}while(cmd=='y' || cmd=='Y');
}//main

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91亚洲资源网| 欧美精品v日韩精品v韩国精品v| 亚洲人成电影网站色mp4| 精品国产三级电影在线观看| 精品免费日韩av| 欧美精品一区二区三区久久久| 欧美一区二区三区播放老司机| 91精品国产欧美一区二区成人| 欧美伊人久久久久久午夜久久久久| 国产精品123| 成人性生交大片免费看视频在线 | 精品制服美女久久| 免费亚洲电影在线| 国产酒店精品激情| 白白色 亚洲乱淫| 欧美吞精做爰啪啪高潮| 欧美日韩不卡在线| 久久影视一区二区| 中文字幕一区二区三中文字幕| 亚洲欧美在线视频观看| 午夜精品久久久久久久久久| 人人超碰91尤物精品国产| 韩国三级在线一区| 99久久婷婷国产| 欧美肥妇bbw| 欧美国产精品劲爆| 亚洲永久精品大片| 精品亚洲免费视频| 91色porny蝌蚪| 日韩女优毛片在线| 亚洲美女免费视频| 奇米色一区二区三区四区| 国产91综合一区在线观看| 欧美综合一区二区| 欧美精品一区二区三区很污很色的 | 国产精品99久久久久久宅男| 91免费看片在线观看| 欧美福利一区二区| 国产精品日韩成人| 日本不卡免费在线视频| 成人av网址在线| 51精品国自产在线| 亚洲裸体xxx| 国产不卡视频在线观看| 欧美亚洲国产一区二区三区| 国产欧美一区二区在线观看| 一区二区三区欧美视频| 国产一区二区三区久久久| 欧美日韩一区视频| 国产精品久久久久影院色老大| 日韩成人精品在线观看| 99精品欧美一区二区蜜桃免费| 精品久久人人做人人爽| 午夜精品久久久久久久久久久 | 精品国精品国产| 亚洲精品国产无套在线观| 国产麻豆午夜三级精品| 欧美一级生活片| 午夜精品福利一区二区三区av | 久久综合九色综合欧美98| 亚洲一区二区三区免费视频| 国产999精品久久久久久| 精品国产一区二区三区久久影院| 亚洲18影院在线观看| 色域天天综合网| 亚洲免费观看在线视频| 成人免费精品视频| 国产女人18毛片水真多成人如厕 | 欧美一级爆毛片| 国产a精品视频| 蜜臂av日日欢夜夜爽一区| 色琪琪一区二区三区亚洲区| 中文字幕二三区不卡| 国产激情精品久久久第一区二区| 日韩一区二区三区免费观看| 久久精品久久久精品美女| 91精品国模一区二区三区| 日本中文字幕一区二区视频| 欧美日韩成人在线| 日本va欧美va瓶| 日韩欧美激情一区| 国产一区二区三区久久悠悠色av | 久久久99久久| 国产一区二区三区免费观看| 国产视频一区二区三区在线观看| 国产真实乱对白精彩久久| 久久精品视频一区二区| 国产激情视频一区二区三区欧美| 国产欧美日本一区二区三区| 粉嫩aⅴ一区二区三区四区| 国产精品美女一区二区在线观看| 成人免费看的视频| 亚洲国产一区二区三区| 欧美三电影在线| 久久精品国产精品青草| 精品久久久久久久久久久久久久久 | 国产精品一卡二| 亚洲国产高清aⅴ视频| 99久久精品免费看| 一级女性全黄久久生活片免费| 欧美人妖巨大在线| 精久久久久久久久久久| 国产精品国产三级国产a| 色婷婷av一区| 九九**精品视频免费播放| 国产精品色婷婷久久58| 欧美三级乱人伦电影| 久久99精品久久久久久久久久久久| 久久久国产一区二区三区四区小说 | 欧美精品777| 欧美一区二区三区在| 天天av天天翘天天综合网色鬼国产| 欧美色爱综合网| 狠狠色丁香婷婷综合久久片| 中文字幕制服丝袜成人av| 4438x亚洲最大成人网| 99精品在线观看视频| 美女网站在线免费欧美精品| 亚洲欧洲成人av每日更新| 欧美日韩午夜在线| 成人免费毛片a| 麻豆91免费看| 亚洲成人福利片| 国产婷婷色一区二区三区在线| 欧美亚洲高清一区| 成人动漫一区二区| 久久精品国产精品亚洲红杏 | 欧美在线免费播放| 国产一区二区美女| 首页欧美精品中文字幕| 国产精品欧美久久久久一区二区| 91麻豆精品国产自产在线观看一区| 欧美国产精品一区二区三区| 国产成a人亚洲精品| 国产精品成人在线观看| 5858s免费视频成人| 91福利精品第一导航| www.日韩av| 福利视频网站一区二区三区| 精品一区二区三区日韩| 日韩电影一区二区三区四区| 尤物在线观看一区| 欧美亚洲国产一区二区三区va | 日韩一级完整毛片| 色香色香欲天天天影视综合网| 国产伦精品一区二区三区免费 | 99久久精品免费看| 懂色av噜噜一区二区三区av| 国产精品一区二区在线播放| 日韩在线播放一区二区| 亚洲福利国产精品| 婷婷中文字幕综合| 偷窥国产亚洲免费视频| 亚洲自拍偷拍图区| 亚洲午夜精品网| 亚洲国产欧美在线| 亚洲午夜免费福利视频| 亚洲国产精品尤物yw在线观看| 亚洲九九爱视频| 亚洲国产日韩av| 男人操女人的视频在线观看欧美| 日韩精品一区第一页| 蜜桃91丨九色丨蝌蚪91桃色| 狠狠色狠狠色综合日日91app| 精品在线一区二区三区| 风间由美性色一区二区三区| 成人听书哪个软件好| 99久久精品99国产精品| 色8久久精品久久久久久蜜| 欧美日韩国产综合视频在线观看 | 麻豆视频观看网址久久| 成人精品免费看| 成人激情av网| 欧美怡红院视频| 日韩欧美亚洲国产精品字幕久久久| 精品国产99国产精品| 国产精品伦一区二区三级视频| 亚洲色图丝袜美腿| 亚洲成人中文在线| 麻豆高清免费国产一区| 不卡的av在线播放| 欧美精品欧美精品系列| 久久久高清一区二区三区| 亚洲精品中文在线| 蜜臂av日日欢夜夜爽一区| 成人性生交大片免费看视频在线 | 国产亚洲制服色| 亚洲最新视频在线观看| 日本亚洲免费观看| 成人av电影在线| 日韩亚洲电影在线| 国产精品国产三级国产专播品爱网| 亚洲自拍偷拍av| 成人高清在线视频| 日韩一级黄色片| 亚洲男帅同性gay1069| 国精产品一区一区三区mba桃花| 91麻豆精东视频| 久久夜色精品国产欧美乱极品| 亚洲午夜久久久|