이런.. 죄송해서 어쩌죠..
지난번에 제가 잘못된 답을 드렸던것 같네요..
미로찾기란 말에.. 너무 성급하게 재귀호출로 단정해 버린것 같습니다.
지금 다시 보니..
구현되어 있는 소스는..
선형리스트를 이용해서 스택을 구현한것이네요..
그런데.. 이 소스에는 스택에 쌓기만 하는 것(push)만 구현이 되어 있고,
Pop하는 것과 정작 중요한 미로찾기 알고리즘이 없네요 T.T
이 내용만 가지고는 출제자의 의도를 저로선 파악하기가 힘드네요..
출제자가 문제를 냈을 텐데.. 그 문제는 무엇이죠?.
가령 .. 스택을 이용해서 미로찾기를 구현하라든가..
허접초보 님이 쓰신 글 :
: 어떻게 해서든 할려구 했는데 도저히 모르겠어요......ㅠ.ㅠ.
: 제가 무지한 탓인데... 넘 급한거라 좀 도와주셨으면 좋겠습니다...ㅠ.ㅠ
: 부탁드리겠습니다.
: #include <stdio.h>
:
: class CStack
: {
: CStack* m_pNext;
: int m_n;
:
: public:
: CStack(void) { m_pNext = NULL; m_n = 0; }
: CStack(int n) { m_pNext = NULL; m_n = n; }
:
: void Push(int n);
: int Pop(int& n);
:
: void Clear(void);
: };
:
: void CStack::Push(int n)
: {
: CStack* pObject = new CStack(n);
:
: if(m_pNext) {
: pObject->m_pNext = m_pNext;
: m_pNext = pObject;
: }
: else {
: m_pNext = pObject;
: }
: }
:
: /*
: int CStack::Pop(int& n)
: //리턴값: 0 실패(emtpy) 1: 성공
: {
:
: }
: */
:
: // 5 은 장애물
: // 6 은 길
: // 7 시작점
: // 8 은 끝점(목표..)
: // 4 지나온 길
: int map[10][10] =
: {
: 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, // 이게 지도
: 5, 6, 6, 6, 5, 6, 6, 6, 6, 5,
: 5, 6, 5, 5, 5, 6, 5, 5, 6, 5,
: 5, 4, 5, 5, 5, 6, 5, 6, 6, 5,
: 5, 4, 5, 5, 5, 6, 6, 6, 6, 5,
: 5, 4, 6, 6, 5, 5, 6, 5, 6, 5,
: 5, 6, 5, 5, 5, 5, 6, 5, 6, 5,
: 5, 6, 6, 6, 6, 6, 6, 5, 6, 5,
: 5, 7, 5, 5, 5, 5, 5, 5, 8, 5,
: 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
: };
:
: /*
: int nStartX;
: int nStartY;
: int SearchStart(void)
: // 리턴값: 1: 성공 0:실패
: {
:
: }
:
: int nEndX;
: int nEndY;
: int SearchEnd(void)
: {
:
: }
: */
:
: void PrintMap(void)
: {
: for(int y = 0 ; y < 10 ; y ++) {
: for(int x = 0 ; x < 10 ; x ++) {
: switch(map[y][x]) {
: case 4:
: printf("@");
: break;
: case 5:
: printf("+");
: break;
: case 6:
: printf(" ");
: break;
: case 7:
: printf("S");
: break;
:
: case 8:
: printf("T");
: break;
: }
: }
: printf("\n");
: }
: }
:
: void main(void)
: {
: PrintMap();
: }
: 재귀호출을 사용한다구 했는데.. 정말 모르갰어요...ㅠ.ㅠ 이거 제출해야하는건데.. 한번만 도와주세여./....
:
:
:
:
|