재귀함수를 중간에 멈추게 하는방법점요

nidle의 이미지

재귀함수를 중간에 멈추게 하고 처음 호출한 곳을 이동시킬수가
있을까요,, 만약 그렇다면 종료안된 함수들은 저절로
종료가 되는건가요??

vacancy의 이미지

재귀 호출은 이런 곳에 사용하지 않습니다.
재작성 하시는 게 좋을 것 같네요.

그냥 반복문이 필요하시다면,
while이나 do~while을 사용하세요.

saxboy의 이미지

어떤 일을 하시려는지 잘은 모르겠지만, 혹시 setjmp 로 되지 않을까 연구해보세요. 사실은 질문하시는 내용이 어떤 것인지 잘 모르겠네요.

nidle의 이미지

제가 너무 아무런 상황설명 없이 질문만 했나봅니다
제가 미로 찾는 프로그램을 재귀함수 써서 만드는데
출구를 찾은다음에 지금까지 호출된 함수들이
대략
way()
{
right
{ :
:
way();
}
left
{ :
:
way();
}
:
:
대략 이런식으로 했는데
right 부분만 들어오면서 출구를 찾았을경우
호출되 재귀함수들이 left 같은 나머지를 수행해서
제어하는데 마니 힘들어서
출구를 찾았을경우 재귀함수 자체가
끝나는거 머 없나하는 생각에..
이렇게 질문을
(아직도 내용이 부실한가..?? ^^ 답변 감사히 듣겠습니다.)

purewell의 이미지

플래그를 달아서

그 플래그가 세팅되면 무조껀 return 하도록 하면 되지 않을까요?

_____________________________
언제나 맑고픈 샘이가...
http://purewell.biz

fibonacci의 이미지

플래그를 주는 방법밖에는 없겠군요.

No Pain, No Gain.

fliers의 이미지

움직일 방향을 설정해주고 스택을 구현하면 재귀함수 부를 일이 없는데요..

지리즈의 이미지

fliers wrote:
움직일 방향을 설정해주고 스택을 구현하면 재귀함수 부를 일이 없는데요..

재귀호출함수 자체가 스택을 이용하는 거지요...

제 생각에 재귀호출을 쓰는 것이 맞는 것 같습니다.
미로찾가기 tree구조이니깐요...

미로찾기는 단순 트리구조가 아니라서.. 학습능력이 필요하군요... 음

일단 재귀호출 함수 자체에 대한 이해가 필요하신 것 같네요...

사실 마지막 재귀호출 때...
즉 더 이상 재귀호출을 하지 않고.. 그 바이너리가 끝나면...
스택을 타고 하나씩 순차적으로 빠져 나가지요...

만약 그런 구조가 아니면.. 재귀호출 함수의 구성요건에 해당되지 않는 것 같습니다.

핸들 방법은 return 값을 이용하는 것이 가장 확실할 것 같습니다.
중간에서 뺘져나가는 방식(flag나 setjump 등)은
잘못하면 stack을 엉망으로 만들어 버릴 수 있으니깐요...

좀 생각해보니 윈쪽, 오른쪽, 전방, 이렇게 세 개의 함수를 교차 호출하기 때문에 어려워 지는 것 같습니다.
vector 방식을 이용해... 방향을 주는 방식으로 해서...
호출할 함수를 단일화하는 편이 쉬을 것도 같네요..

아마... 인터넷 어딘가에 답은 있겠지만...
스스로 고민하는 것도 즐겁군요...

There is no spoon. Neo from the Matrix 1999.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.