2.1 순환의 소개 순환(recursion): 어떤 알고리즘이나 함수가 자기 자신을 호출하여 문제를 해결하는 프로그래밍 기법 ● 순환 호출의 내부적인 구현 - 함수가 자기 자신을 호출하는 것도 다른 함수를 호출하는 것과 동일. - 복귀 주소를 시스템 스택에 저장하고, 호출되는 함수를 위한 매개변수와 지역변수를 스택으로부터 할당받음. (함수호출마다 새로운 지역변수를 만들기 때문에 이전 호출과 구분할 수 있음) - 이 시스템 스택에서의 공간을 활성 레코드(active record)라 함. - 호출된 함수가 끝나면, 시스템 스택에서 복귀주소를 추출하여 호출한 함수로 되돌아감. - 순환호출이 중첩될 때마다 시스템 스택에 활성화 레코드가 쌓임. ● 순환 알고리즘의 구조 int factorial (int n){ i..
전체 글
1.1 자료구조와 알고리즘 프로그램 = 자료구조 + 알고리즘 자료구조 : 프로그램에서 자료들을 정리하여 보관하는 여러 구조 알고리즘 : 컴퓨터로 문제를 풀기 위한 단계적인 절차 문제와 컴퓨터가 주어진 상태에서 문제를 해결하는 방법을 장치가 이해할 수 있는 언어로 기술한 것 특정한 일을 수행하는 명령어들 중 알고리즘이 되기 위한 조건들을 만족하는 집합 ● 알고리즘 정의 입력(0개 이상), 출력(1개 이상), 명백성(의미는 모호하지 않고 명확), 유한성(한정된 수의 단계 후에는 반드시 종료), 유효성(종이, 연필 또는 컴퓨터로 실행 가능한 연산) ● 알고리즘 기술법 한글이나 영어 같은 자연어 - 모호성 제거 필요 흐름도(flowchart) - 알고리즘이 복잡할수록 기술하기 어려움 의사 코드(pseudo-co..