CS과목/자료구조 12

[CS과목/자료구조] 02 순환

교재: C언어로 쉽게 풀어쓴 자료구조 개정 3판 (2019, 천인국 외) 2.1 순환의 소개 순환(recursion)이란 어떤 알고리즘이나 함수가 자기 자신을 호출하여 문제를 해결하는 프로그래밍 기법이다. 순환은 본질적으로 순환적인 문제나 그러한 자료구조를 다루는 프로그램에 적합하다. 순환 호출의 내부적인 구현  순환을 이해하기 위하여 먼저 함수 호출의 과정을 살펴보자. 프로그래밍 언어에서 하나의 함수가 자기 자신을 다시 호출하는 것은 다름 함수를 호출하는 것과 동일하다. 즉 복귀주소가 시스템 스택에 저장되고 호출되는 함수를 위한 매개변수(parameter)와 지역 변수를 스택으로부터 할당받는다. 이러한 함수를 위한 시스템 스택에서의 공간을 활성 레코드(activation record)라고 한다. 순환 ..

[CS과목/자료구조] 01 자료구조와알고리즘

교재: C언어로 쉽게 풀어쓴 자료구조 개정 3판 (2019, 천인국 외) 1.1 자료구조와 알고리즘자료구조란?  사람들이 사물을 정리하여 저장하는 것과 마찬가지로 프로그램에서도 자료들을 정리하여 보관하는 여러 가지 구조들이 있다. 이를 자료 구조(data structure)라 부른다. 알고리즘이란?   컴퓨터로 문제를 풀기 위한 단계적인 절차를 알고리즘(algorithm)이라고 한다. 엄밀하게 이야기하면 알고리즘이란 문제와 컴퓨터가 주어진 상태에서 문제를 해결하는 방법을 정밀하게 장치가 이해할 수 있는 언어로 기술한 것이다. 따라서 알고리즘은 특정한 일을 수행하는 명령어들의 집합이다. 입   력: 0개 이상의 입력이 존재하여야 한다.출   력: 1개 이상의 출력이 존재하여야 한다.명백성: 각 명렁어의 의..