윤성우자료구조 3

[Data Structures] 테이블(Table)과 해쉬(Hash)

1. 테이블 (Table) 자료구조의 이해 탐색대상을 단번에 찾을 수 있는 자료구조로, O(1)의 시간복잡도를 가진다 저장되는 데이터는 키(key)와 값(value)이 하나의 쌍을 이룬다 키(key)가 존재하지 않는 값은 저장할 수 없다 모든 키(key)는 중복되지 않는다 map 으로 불리기도 한다 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 //"UnderstandTable.c" typedef struct _empInfo { int empNum; //직원의 고유번호 int age; //직원의 나이 } EmpInfo; int main(void) { EmpInfo empInfoArr[1000]; EmpInfo ei; int eNum; printf("..

[Data Structures] 스택 (Stack)

1. 스택이란 선형 자료구조의 일종 한쪽은 막히고 한쪽은 뚫려있는 초코볼 통에 비유할 수 있다 후입선출 = Last In, First Out! (LIFO) 2. 스택 ADT와 헤더 파일 정의 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 #ifndef __AB_STACK_H__ #define __AB_STACK_H__ #define TRUE 1 #define FALSE 0 #define STACK_LEN 100 typedef int Data; typedef struct _arrayStack { Data stackArr[STACK_LEN]; int topIndex; } ArrayStack; typedef Ar..

[Data Structures] 재귀 (Recursion)의 이해

재귀함수는 자료구조나 알고리즘의 어려운 문제를 단순화하는데 사용되는 중요한 무기이다 1. 재귀함수의 흐름 Recursive 함수를 실행하는 중간에 다시 Recursive 함수가 호출되면, Recursive 함수의 복사본을 하나 더 만들어서 복사본을 실행하게 된다 Recursive 함수를 정의하는데 있어서 '탈출조건'을 구성하는 것은 매우 중요한 일이다 2. 재귀의 활용 - 피보나치 수열 피보나치 수열은 재귀적인 형태를 띠는 대표적인 수열 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55 .... 수식 표현 코드 구현 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 #include int Fibo(int n) { if(n == 1) return 0;..

728x90