제가 너무 아무런 상황설명 없이 질문만 했나봅니다
제가 미로 찾는 프로그램을 재귀함수 써서 만드는데
출구를 찾은다음에 지금까지 호출된 함수들이
대략
way()
{
right
{ :
:
way();
}
left
{ :
:
way();
}
:
:
대략 이런식으로 했는데
right 부분만 들어오면서 출구를 찾았을경우
호출되 재귀함수들이 left 같은 나머지를 수행해서
제어하는데 마니 힘들어서
출구를 찾았을경우 재귀함수 자체가
끝나는거 머 없나하는 생각에..
이렇게 질문을
(아직도 내용이 부실한가..?? ^^ 답변 감사히 듣겠습니다.)
재귀 호출은 이런 곳에 사용하지 않습니다.재작성 하시는 게 좋을 것
재귀 호출은 이런 곳에 사용하지 않습니다.
재작성 하시는 게 좋을 것 같네요.
그냥 반복문이 필요하시다면,
while이나 do~while을 사용하세요.
...
어떤 일을 하시려는지 잘은 모르겠지만, 혹시 setjmp 로 되지 않을까 연구해보세요. 사실은 질문하시는 내용이 어떤 것인지 잘 모르겠네요.
제가 너무 아무런 상황설명 없이 질문만 했나봅니다제가 미로 찾는 프
제가 너무 아무런 상황설명 없이 질문만 했나봅니다
제가 미로 찾는 프로그램을 재귀함수 써서 만드는데
출구를 찾은다음에 지금까지 호출된 함수들이
대략
way()
{
right
{ :
:
way();
}
left
{ :
:
way();
}
:
:
대략 이런식으로 했는데
right 부분만 들어오면서 출구를 찾았을경우
호출되 재귀함수들이 left 같은 나머지를 수행해서
제어하는데 마니 힘들어서
출구를 찾았을경우 재귀함수 자체가
끝나는거 머 없나하는 생각에..
이렇게 질문을
(아직도 내용이 부실한가..?? ^^ 답변 감사히 듣겠습니다.)
플래그를 달아서그 플래그가 세팅되면 무조껀 return 하도록 하
플래그를 달아서
그 플래그가 세팅되면 무조껀 return 하도록 하면 되지 않을까요?
_____________________________
언제나 맑고픈 샘이가...
http://purewell.biz
...
플래그를 주는 방법밖에는 없겠군요.
No Pain, No Gain.
움직일 방향을 설정해주고 스택을 구현하면 재귀함수 부를 일이 없는데요..
움직일 방향을 설정해주고 스택을 구현하면 재귀함수 부를 일이 없는데요..
[quote="fliers"]움직일 방향을 설정해주고 스택을 구현하면 재
재귀호출함수 자체가 스택을 이용하는 거지요...
제 생각에 재귀호출을 쓰는 것이 맞는 것 같습니다.
미로찾가기 tree구조이니깐요...
미로찾기는 단순 트리구조가 아니라서.. 학습능력이 필요하군요... 음
일단 재귀호출 함수 자체에 대한 이해가 필요하신 것 같네요...
사실 마지막 재귀호출 때...
즉 더 이상 재귀호출을 하지 않고.. 그 바이너리가 끝나면...
스택을 타고 하나씩 순차적으로 빠져 나가지요...
만약 그런 구조가 아니면.. 재귀호출 함수의 구성요건에 해당되지 않는 것 같습니다.
핸들 방법은 return 값을 이용하는 것이 가장 확실할 것 같습니다.
중간에서 뺘져나가는 방식(flag나 setjump 등)은
잘못하면 stack을 엉망으로 만들어 버릴 수 있으니깐요...
좀 생각해보니 윈쪽, 오른쪽, 전방, 이렇게 세 개의 함수를 교차 호출하기 때문에 어려워 지는 것 같습니다.
vector 방식을 이용해... 방향을 주는 방식으로 해서...
호출할 함수를 단일화하는 편이 쉬을 것도 같네요..
아마... 인터넷 어딘가에 답은 있겠지만...
스스로 고민하는 것도 즐겁군요...
There is no spoon. Neo from the Matrix 1999.
댓글 달기