C

CS/자료구조

[자료구조] 연결리스트 Linked List

05 연결리스트 Linked List 출처 C언어로 쉽게 풀어쓴 자료구조(천인국, 공용해, 하상호 저) 1. 연결리스트의 개념 1-1. 리스트란? 리스트는 자료를 정리하는 방법 중의 하나로, 할일 목록 등과 같은 것들을 관리할 때 쓰이는 자료구조이다. 리스트는 항목이 차례대로 저장되어 있으며, 각 항목들은 순서와 위치를 가지고 있다. 1-2. 연결리스트의 기능 리스트의 기능는 삽입, 삭제, 탐색 등의 연산을 수행할 수 있고, Node를 통해 연결된다. 리스트의 ADT는 아래와 같다. - 객체: n개의 element 형으로 구성된 순서가 있는 모임 - 연산 insert(list, pos, item) ::= pos 위치에 요소를 추가한다. insert_last(list, item) ::= 맨 끝에 요소를 추..

CS/자료구조

[자료구조] 순환 - Recursion

02 순환 Recursion 1. 순환의 개념 1-1. 순환이란? 순환이란 알고리즘이나 함수가 수행 도중에 자기 자신을 다시 호출하여 문제를 해결하는 기법이다. 정의 자체가 순환적으로 되어 있는 경우에 적합한 방법이다. 순환의 가장 간단한 예로는 팩토리얼있다. 아래는 c언어로 팩토리얼 구하는 함수를 만든 것이다. int factorial(int n){ if (n ... -> 21 -> 20) 즉, 호출을 할 때마다 문제의 크기가 2로 나눈 것만큼 줄어들기 때문에 시간복잡도가 O(log2 n)이다. 반면 반복문은 n만큼 반복 연산해야하기 때문에 시간복잡도가 O(n)이다. 물론 수학적인 방식을 이용했기때문에 당연히 순환적인 방식이 빠를 수밖에 없는 거 아닌가라고 생각할 수 있을 것이다. 그러나 반복문에서는 ..

gakko
'C' 태그의 글 목록