Chapter4 - 기본 추상자료형 4.1 리스트 ADT 4.1.1 추상자료형이란 ADT(Abstract Data Type): 인간이 데이터를 다루는 관점에서 데이터구조를 명세한 것 다루는 데이터 데이터에 대한 작업들 발생 가능한 에러상황들 4.1.2 리스트ADT 연속적인 임의 개체들 모델링 4.1.3 리스트 ADT 메소드 일반 메소드 integer size(): 원소 수 반환 boolean isEmpty(): 비어있는지 확인 iterator elements(): 원소 전체 반환 접근 메소드 element get(r): r에 저장된 원소 반환 갱신 메소드 element set(r, e) add(r, e) addFirst(e) addLast(e) element remove(r) element removeF..
Chapter3 - 기초 데이터구조 3.1 데이터구조의 기본 재료 이 장에서는 배열과 연결리스트에 대해 알아봄 3.2 배열 3.2.1 1차원 배열 배열: V[LB..UB] 형식으로 선언 배열첨자는 0부터 N-1까지 3.2.2 다차원 배열 table 형태로 표시하지만 메모리에 저장될 때에는 일직선의 형태로 저장 3.3 연결리스트 동적메모리에 할당괸, 링크에 의해 연결된 유한 개의 데이터원소 노드들 연결리스트 명, L: 첫 노드의 주소 연결리스트 크기, n: 연결리스트 내 노드 수 메모리 할당 getnode(): 노드를 할당하고 해당 주소 반환 putnode(i): 주소i에 할당된 메모리 해제 후 동적메모리에 반환 3.3.1 단일연결리스트 가장 단순하게 원소와 링크로 구성 원소: 데이터 원소 링크: 다음 노..
Chapter2 - 재귀 2.1 재귀 알고리즘 재귀(Recursion) : 문제에 대한 해결을 할 때 일부만 답하고 나머지는 또 다른 문제로 남겨두는 것 재귀 호출(Recursive Call) : 알고리즘이 자기 자신을 호출하는 것 Alg sum(n) 1. if (n = 1) {base case} return 1 else {recursion} return n + sum(n-1) 재귀 케이스(recursive case) : 재귀호출은 반드시 원래 문제보다 작은 문제들을 대상으로 해야함 베이스 케이스(base case) : 부문제들이 작아지면 직접 해결 2.2 재귀의 작동원리 재귀와 관련된 내부 처리는 컴퓨터 내부에서 자동 수행 대기중인 호출들은 시스템 Stack에 저장되었다가 꺼내짐 2.3 재귀의 기본 규..
Chapter1 - 알고리즘 분석 1.1 실행시간 알고리즘(Algorithm) : 주어진 문제를 일정 시간내에 해결하는 단계적 절차 자료구조(Data Structure) : 데이터를 효율적으로 관리하기 위한 구조 좋은 알고리즘 : 실행 시간이 짧고 메모리를 적게 요구하는 알고리즘 1.1.1 평균 실행 시간과 최악 실행 시간 실행 시간의 종류 최선 실행 시간(best-case running time) 평균 실행 시간(average-case running time) 최악 실행 시간(worst-case running time) : 분석이 용이하고 유용성을 평가하는 가장 결정적인 요소 1.1.2 실행 시간 구하기 실험적 방법 실제 알고리즘을 구현하고 입력 값을 다양화 하며 측정하는 방법 모든 데이터를 입력할 수..