자료구조 02 - Recursion 연습문제
- 최초 등록일
- 2011.09.25
- 최종 저작일
- 2010.10
- 8페이지/ 한컴오피스
- 가격 1,000원
소개글
안녕하세요,
[C언어로 쉽게 풀어 쓴 자료구조] (Data structure in C) - 천인국 저, 생능출판사
의 각 단원의 연습 문제 및 중요한 소스코드 입니다.
저는 A+ 학점을 받지 않은 과목의 자료는 올리지 않습니다. 한글파일 및 소스코드가 함께
들어가있습니다. 2010년 자료라 믿고 받으시면 됩니다.
목차
없음
본문내용
01. 팩토리얼을 계산하는 순환 호출 함수 factorial에서 매개 변수로 5를 주었다면 최대 몇 개의 factorial 함수의 활성 레코드가 동시에 존재할 수 있는가?
- 팩토리얼 계산 프로그램은 다음과 같다
int factorial(int n){
if( n <= 1 ) return(1);
else return (n * factorial(n-1));
}
=> 매개변수로 5가 주어진다면, factorial(5)의 리턴에서 매개변수가 1이 감소되어 factorial(4)가 호출되고, 이러한 방법으로 계속 1씩 감소하여 총 다섯 번 호출되고, 다섯번째에서 비 순환 부분인 if문에서 더 이상 함수를 호출하지 않고 다시 되돌아오게 된다.
∴ 따라서 factorial 함수의 활성 레코드는 스택상에서 최대 5개 존재가능하다.
03. 다음 중 활성 레코드에 저장되지 않는 것은 무엇인가?
=> 활성레코드의 정의는 ‘procedure들의 레지스터들과 지역변수들을 저장하는 Stack영역’ 이다.
(1) 매개 변수의 값
(2) 함수 호출이 끝나고 복귀할 주소
(3) 지역 변수
(4) 순환 호출의 순차 번호
∴ 매개 변수와 지역변수 값은 범용레지스터에 저장되고, 함수호출이 끝나고 복귀할 주소는 ebp에 저장된다. 순차 번호는 스택상에 저장되지 않는다.
05. 하나의 함수가 호출할 수 있는 순환 호출의 개수는?
참고 자료
없음