미로에서 stack에 있는 길을 그래픽(벽* 길^)표현하구 싶은데요
글쓴이: nidle / 작성시간: 일, 2003/11/23 - 8:29오후
안녕하세요
미로 프로그램을 짜는데 길은 stack에 들어가는데
들어간 길을 그래픽 (예를들어 벽* 길은^로 표현)으로 표현을 하고 싶은데
그냥 for문이나 이런걸로는 점 힘들더라구요
다른 라이브러리 함수를 써야되나요,,
아참그리구여 제가 미로를 재귀함수를 써서 만들었거든요
길을 찾다가 막히면 종료 하면서 백하는 그런데
재귀는 별루 쓰고 싶지않아서 다른 알고리즘이은 어떤게 있을가요,,
한가지만더요 책을 보면 백이면 백 모든 책들이 goto문을 무지 하게싫어하더라구요 근데 재가 보기에는 goto문보다는 재귀함수 쓰는게 더 위험할듯한데
재귀함수에 대해서는 그리 혹평까지는 안하다러구요
과연 둘중에 한개를 써야된다면 어떤것을써야될까요
쓰다보니 3가지나 질문을 했군요 .. 그럼이만
Forums:
보통 Search를 하는데는Depth First Search와,B
보통 Search를 하는데는
Depth First Search와,
Bredth First Search가 있죠.
전자는 주로 Stack을 이용한 재귀 호출로 구현이 되고,
후자는 Queue를 이용하고 재귀 호출보다는 대개 루프로 구현이 됩니다.
후자를 적용해보시면 재귀 호출은 쓰지 않아도 되겠죠.
( 대신 Queue에 저장할 Data Structure를 구성하는게 만만치 않죠. )
재귀 호출을 사용하는 것은,
프로그램을 Simple하게 만들 수 있다는 면이 가장 큰 장점이죠.
Performance가 아주 중요한 상황이거나
Stack Overflow의 위험이 있거나 하지 않다면
재귀 호출을 사용하는 것은 꽤 권장할만한 일이라고 생각합니다.
재귀 호출을 사용한 코드들은 꽤 아름다워서 읽기도 좋은 편이니까요.
그렇다고 해서 불필요한 곳에까지 쓰는 건 곤란하고요. -_-;
( 흔히 예로 나오는 피보나치 수열 같은데는 실제론 적용하지 않는게 좋겠죠. )
goto는 프로그램의 흐름을 한 눈에 확인하기 어렵게 한다는 것이 가장 문제죠.
특히나 goto를 대신할만한 각종 분기/반복문들이 마련되어 있는 현 상황에서,
굳이 goto를 써야할 만한 상황이 사실 드무니까요.
그런 분기/반복문들로 안된다면 뭔가 일반적이지 못하다고 볼 수 있죠.
goto와 재귀 호출은 1:1로 대응되는 것이 아니라고 보고요.
같은 것을 저 둘 중 하나로 구현하라면 재귀 호출이 좋다고 봅니다.
( goto로 하려면 직접 Stack도 구현해줘야겠죠 ? -_- )
결정적으로 goto는 아름답지 않잖아요 ? -_-;
댓글 달기