본문 바로가기

자료구조(Data Structure)와 추상자료형(Abstract Data Type) 배경 파이썬으로 자료구조를 공부하는 와중에 배열을 접했다. 상당 수의 강의에서 자료구조를 설명할 때 배열의 정의를 실컷 설명하고는 리스트로 결과물을 보여준다. 이어서 파이썬 리스트의 특징을 설명하는데 배열을 설명하는 건지 리스트를 설명하는 건지 애매해서 답답했다. 단순히 리스트가 배열로 사용된다고 얼버무리고 넘어가기에는 배열의 정의와 파이썬 리스트는 안 어울렸다. 매끄럽지 못한 설명을 듣다 보니 무언가를 놓치고 있는 것 같았다. 간단한 개념으로 여겨지지만 명확한 것을 좋아하는 나로서는 깔끔한 정리가 필요했다. 그렇게 점점 파고들며 이렇게 자료구조와 추상 자료형을 정리한다. 자료구조 정의 일반적으로 데이터 값의 모임, 또 데이터 간의 관계, 그리고 데이터에 적용할 수 있는 함수나 명령으로 실제로 데이터를 ..
자료구조 개관 (Data Structure Overview) 자료구조 정의 자료구조(資料構造, 영어: data structure) 컴퓨터 과학에서 효율적인 접근 및 수정을 가능케 하는 자료의 조직, 관리, 저장을 의미한다. 더 정확히 말해, 자료 구조는 데이터 값의 모임, 또 데이터 간의 관계, 그리고 데이터에 적용할 수 있는 함수나 명령을 의미한다. 자료구조 목적 효과적으로 설계된 자료구조는 실행시간 혹은 메모리 용량과 같은 자원을 최소한으로 사용하면서 연산을 수행하도록 해준다. 다양한 프로그램을 설계할 때, 어떠한 자료구조를 선택할지는 가장 우선적으로 고려되어야 한다. 큰 시스템을 제작할 때 구현의 난이도나 최종 결과물의 성능이 자료구조에 크게 의존한다는 것을 많은 경험이 뒷받침하기 때문이다. 일단 자료구조가 선택되면 적용할 알고리즘은 상대적으로 명확해지기 마..