01-1. 자료구조(Data structure)에 대한 기본적인 이해 > 프로그래밍이란 데이터를 표현하고, 그렇게 표현된 데이터를 처리하는 것이다. 데이터의 ‘표현’ = 데이터의 ‘저장’ 자료구조 : 데이터를 표현하고 저장하는 방법 선형 자료구조 : 자료를 표현
02-1. 함수의 재귀적 호출의 이해 재귀함수 : 함수 내에서 자기 자신을 다시 호출하는 함수
03-1. 추상자료형(Abstract Data Type) > 구체적인 기능의 완성과정을 언급하지 않고, 순수하게 기능이 무엇인지 나열한 것으로 ADT라고 부른다 03-2. 배열을 이용한 리스트의 구현 순차 리스트 : 배열을 기반으로 구현된 리스트 연결 리스트 : 메모
04-1. 연결리스트의 개념적인 이해 연결리스트 : ‘malloc’ 함수와 ‘free’ 함수를 기반으로 하는 메모리의 동적할당 배열은 메모리의 특성이 정적이어서 메모리의 길이를 변경하는 것이 불가능하다. 메모리의 크기에 유연하게 대처하지 못한다. 동적인 메모리의 구
05-1. 원형 연결 리스트(Circular Linked List) 원형 연결 리스트의 이해 원형 연결 리스트 : 연결의 형태가 원을 이루는 구조의 연결 리스트 머리에 노드 추가 꼬리에 노드 추가  구조의 자료구조 스택 자료구조의 ADT void StackInit(Stack *pstack);
07-1. 큐의 이해와 ADT 정의 큐의 이해 > 선입선출의 자료구조 FIFO(First-In, First-Out)의 자료구조 큐의 ADT 정의 enqueue : 큐에 데이터를 넣는 연산 dequeue : 큐에서 데이터를 꺼내는 연산 >- void QueueInit
08-1. 트리의 개요 비선형 자료구조 트리(Tree)의 접근 > 트리는 계층적 관계를 표현하는 자료구조이다 트리가 표현할 수 있는 것들 가지를 늘려가며 뻗어나간다 의 소개 힙 : 완
10-1. 단순한 정렬 알고리즘 버블 정렬(Bubble Sort) : 이해와 구현 인접한 두 개의 데이터를 비교해가면서 정렬을 진행하는 방식 >정렬의 우선순위가 가장
11-1. 탐색의 이해와 보간 탐색 탐색의 이해 ‘데이터를 찾는 방법’ > 효율적인 탐색을 위해서는 ’어떻게 찾을까’ 뿐만 아니라 ’효율적인 탐색을 위한 저장방법’이 무엇일까를 고려해야 한다 보간 탐색(Interpolation Search) 정렬되지 않은 대상을 기반
12-1. 균형 잡힌 이진 탐색 트리 : AVL 트리의 이해 이진 탐색 트리의 문제점과 AVL 트리 이진 탐색 트리의 탐색 연산 : O(log2(n)) 이진 탐색 트리는 균형이 맞지 않을수록 O(n)에 가까운 시간 복잡도를 보인다 이진 탐색 트리는 저장 순서에 따라
13-1. 빠른 탐색을 보이는 해쉬 테이블 테이블(Table) 자료구조의 이해 > AVL트리는 ’단번에’ 찾아내는 방식이라고 말하기는 어렵다 시간 복잡도 AVL 트리의 탐색 연산 : O(logn) 테이블의 탐색 연산 : O(1) >키(key)와 값(value)이 하
14-1. 그래프의 이해와 종류 그래프의 역사와 이야깃거리 “모든 다리를 한 번씩만 건너서 처음 출발했던 장소로 돌아올 수 있는가?” > 불가능하다. 정점 별로 연결된 간선의 수가 모두 짝수여야, 간선을 한 번씩만 지나서 처음 출발했던 정점으로 돌아올 수 있다 간