티스토리 뷰



Data Structure의 정의는 위키피디아에 의하면 다음과 같다.

Data structure is a particular way of storing and organizing data in a computer so that it can be used efficiently.

 
즉, 데이터를 저장하고 관리하는 것을 효율적으로 하기위한 특정한 방법을 말한다.

이 과목에서는 다양한 형태의 자료구조를 소개하며 그것을 실제로 구현하는 방법에 대해서도 다룬다.
그런 의미에서 중요한 것은 추상 데이터 타입(Abstract Data Type, ADT)의 개념이다.

ADT는 어떠한 구조를 Data와 Operation으로 정의하고 Data의 접근은 그 ADT의 Operation으로만 가능하도록 한다.
그리고 내부 구조를 전혀 신경쓰지 않기 때문에 ADT라고 한다.
그렇기에 자료 구조를 논리적인 자료구조, 그리고 물리적인 자료구조로 나눌 수 있다.

Tree, Stack, Queue와 같은 것은 논리적인 ADT가 되는 것이고
그러한 자료구조를 배열이나 Linked List와 같은 물리적인 자료구조로 구현하게 된다.
ADT를 실제로 사용할 때는 내부적으로 어떻게 구현되는지 신경쓰지 않고 Operation만을 이용하게 되는 것이다.

우리가 흔히 트리를 생각하면 무조건 링크가 달려있는 것으로 생각하기가 쉬운데 실제로 그것은 단순한 함수 호출의 반복된 형태일 수도 있고 정말로 링크로 연결된 물리적인 트리가 생길 수도 있다.

그런 논리적인 자료구조와 물리적인 자료구조의 차이점을 헷갈리지 않고 명확히 개념을 이해하는게 이 과목에 있어서 중요할 것이라 생각한다!
자료구조라는 것이 거의 대부분의 Computer Science의 과목들에 대해 기본적인 내용이므로 그 중요성은 당연할 것이다. 

머릿속으로 생각했을 땐 뭔가 명확했는데 글로 옮겨놓으니 영 아니다.'ㅁ'... 암튼 자료구조 마스터 화이팅!

'Computer Science' 카테고리의 다른 글

[Data Structure] Queue  (0) 2011.07.03
[Data Structure] Stack  (0) 2011.07.03
Trees  (0) 2011.06.29
Graphs  (0) 2011.06.29
Relations  (0) 2011.06.28
댓글