자료구조 4

[자료구조] - 4. 추상자료형, 리스트 ADT

추상자료형, 리스트 ADT 추상자료형(abstract data type, ADT): 데이터구조의 추상형 ADT는 다음을 명세 1. 저장된 데이터 2. 데이터에 대한 작업들 3. 작업 중 발생 가능한 에러 상황들 예: 주식거래 시스템을 모델링한 ADT 1. 데이터 : 구매, 판매 주문들 2. 지원하는 작업 : 주식 구매, 판매, 취소 3. 에러 상황 : 존재하지 않는 주식에 대한 주문 추상자료형(abstract data type, ADT)에 대해서 알아보겠습니다. 추상자료형은 자료구조를 추상적으로 표현한 것으로, 사람이 자료를 다루는 관점에서 자료구조를 표현한 것입니다. 쉽게 말하면 실제 기능의 구현방법을 제외하고, 기능이 무엇인지만 설명하는 것이 추상자료형입니다. 예를 들어 카카오톡을 추상자료형으로 나타..

[자료구조] - 3. 배열, 연결리스트

배열, 연결리스트 배열(array) : 순차 기억장소에 할당된 유한 개수의 동일 자료형 데이터원소들 베이스(base) : 배열의 첫째 셀 위치 오프셋(offset) : 해당 셀이 베이스로부터 떨어진 거리(변위차)를 나타내는 정수형 2차원 배열 : 테이블(table)이라고도 불림, 1차원과 2차원은 각각 행(row)과 열(column)로도 불림 이번 게시글에서는 자료구조를 구축하는 바탕인 배열과 연결리스트에 대해서 살펴보겠습니다. 자료구조는 비교적 추상적인 반면, 배열과 연결리스트는 상대적으로 구체적(컴퓨터 구조에 가까움)이기 때문에 자료구조를 배열과 연결리스트로 구현하게 됩니다. 배열은 비교적 간단한 개념인데요. 쉽게 이야기하면 데이터를 순차적으로 메모리에 배치한 자료구조 라고 할 수 있습니다. 오프셋(..

[자료구조] - 2. 재귀

재귀 재귀적(recursive) 알고리즘 : 알고리즘 자신을 사용하여 정의된 알고리즘 재귀의 요소 재귀 케이스(recursion) : 차후의 재귀호출은 작아진 부문제들(subproblems)을 대상으로 이루어진다 베이스 케이스(base case) : 부문제들이 충분히 작아지면, 알고리즘은 재귀를 사용하지 않고 이들을 직접 해결한다. 재귀 알고리즘에 대해서 살펴보겠습니다. '재귀(再歸)'라는 단어는 일상에 잘 쓰이지 않는 단어라 쉽게 이해되지 않는 것이 사실입니다. 재귀를 한자를 그대로 풀어보면 다시(再) 돌아오다(歸)라는 뜻입니다. 재귀를 부르는 원래 단어 recursion 역시 '반복, 되풀이' 라는 뜻입니다. 따라서, 재귀 알고리즘은 (자기 자신으로) 다시 돌아오는 알고리즘 이라고 할수 있겠습니다. ..

[자료구조] - 1. 개요, 원시작업, Big-Oh 표기법

자료구조 개요, 원시작업, Big-Oh 표기법 용어 정리 알고리즘(algorithm) : 주어진 문제를 유한한 시간 내에 해결하는 단계적 절차 데이터구조(data structure) : 데이터를 조직하고 접근하는 체계적 방식 “좋은” 알고리즘과 데이터구조 : 작업에 소요되는 실행시간과 기억장소 사용량이 작다. 자료구조를 공부하기에 앞서, ‘알고리즘’과 ‘자료구조(=데이터 구조)’라는 용어에 대해 먼저 정리해보았습니다. 우리의 목표는 “좋은” 알고리즘과 자료구조, 즉 작업에 소요되는 실행시간과 기억장소 사용량이 작은 알고리즘과 자료구조를 만드는 것입니다. 좀 더 쉽게 설명을 해보자면, 자료구조는 말 그대로 “자료(data)를 담는 구조”를 말합니다. 자료(data)를 어떻게 저장하고, 꺼내올 것인지를 배우..