스택이용-미로찾기프로그램(c++구현)
- 최초 등록일
- 2004.10.28
- 최종 저작일
- 2004.10
- 압축파일
- 가격 1,000원
소개글
데이터구조 프로젝트로 제출한 파일입니다.
주석도 나름대로 열심히 달았으니, 많이 참고하시기 바랍니다.^^
컴파일 실행환경
Microsoft Visual Studio 6.0
txt형식으로 저장된 미로 maze.txt가 있어야 하며(첨부했음)
컴파일 후 실행.
첨부된 파일 : 1.소스코드(cpp) 2.실행파일(exe) 3.미로파일(txt)
본문내용
class MazeStack{
private :
struct Element
{
int row; //행의 값
int col; //열의 값
int direction; //다음 방향 값
}maze[StackMax]; //worst case 모든곳을 다 방문 -> 최소한 15*15크기 이상의 stack 준비.
int sp; //새로운 데이터가 들어올 곳(stack의 top 바로 다음)을 point.
public :
MazeStack()
{
sp=0; //스택이 비었을 경우, stack pointer는 0을 가리킨다.
}
void push(int ro, int co, int di)
{
if(sp==StackMax)
{
........
char maze[MazeMax][MazeMax]; //파일로부터 읽어들일 미로배열
int mark[MazeMax][MazeMax]; //방문여부기록 위한 배열
char path[MazeMax][MazeMax]; //성공path출력을 위한 배열
int nextM, nextN; //다음 위치 저장을 위한 변수
//함수/////////////
void InitMaze();
void FindPath();
void ShowPath();
///////////////////
struct Movement{//이동테이블 Movement 구조체로 구현
int row;
int col;
};
//이동테이블 move배열 초기화
//북쪽부터 시계방향순으로 check.(N-NE-E-SE-S-SW-W-NW순.)
Movement move[8]={
{-1, 0}, {-1, 1}, {0, 1}, {1, 1}, {1, 0}, {1, -1}, {0, -1}, {-1, -1}
};
void main()//main함수
{
cout<<" ***** 스택을 이용한 미로 찾기 프로그램 *****"<<endl;
cout<<"maze.txt파일로부터 미로를 읽습니다."<<endl;
InitMaze();
cout<<endl<<"미로 찾는중..."<<endl;
FindPath();
cout<<endl<<"프로그램을 마칩니다. 감사합니다.^^"<<endl;
getch();
}//main end.
.....
압축파일 내 파일목록
maze.txt
project1.exe
project1.cpp
참고 자료
없음