티스토리 뷰

자료구조(Data Structure)


자료(Data)

현실 세계로부터 수집한 사실이나 개념의 값 또는 이들의 집합을 의미한다

흔히 가공되지 않은 형태의 데이터를 자료라고 하며 특정한 용도로 사용하기 위하여 자료를 처리/가공한 형태의 데이터를 정보(Information) 이라고 한다


자료구조(Data Structure)

자료의 집합을 의미

각 원소들 사이의 관계가 논리적으로 정의된 일정한 규칙에 의하여 나열되며 자료에 대한 처리를 효율적으로 수행할 수 있도록 자료를 조직적, 체계적으로 구분하여 표현한 것을 말한다


자료구조의 선택기준

작업의 효율성, 추상화, 재사용성을 증가시키기 위하여 상황에 따른 자료구조를 선택하여 사용해야 한다

자료의 처리를 더 효율적으로 하기 위하여 아래의 사항을 고려해야한다

- 자료의 처리시

- 자료의 크기

- 자료의 활용빈도

- 자료의 갱신정도

- 프로그램의 용이성


자료구조의 특징

효율성(Efficiency)

상황에 맞는 알고리즘을 사용하여 자료를 구조화 시키기 때문에 효율적으로 동작한다

평균적으로 자료수/2 만큼의 검색을 해야하므로 데이터를 찾는 작업이 빈번하고 데이터가 많을 경우 비효율적

이럴때에는 HashTable 과 같은 자료구조를 이용하여 좀더 빠르게 작업을 할 수 있다


추상화(Abstraction)

복잡한 자료, 모듈, 시스템 등으로부터 핵심적인 개념 또는 기능을 간추려 내는것을 말한다

자료구조를 이용하여 데이터를 처리할 경우 처리할 데이터를 어떻게 삽입하고 어떻게 추출할 것 인가에 중점을 두지 않음

즉, 자료구조 자체를 구현하는 알고리즘에 중점을 두지 않고 어느 시점에 데이터를 삽입할 것이며 어느 시점에 데이터를 추출하고 이러한 데이터를 어떻게 사용할 것인지에 초점을 맞출 수 있기 때문에 프로그램의 비즈니스적인 요소에 좀 더 시간을 할애할 수 있다


재사용성(Reusability)

자료구조를 이용하여 데이터를 처리할 경우 해당 자료구조의 인터페이스만 이용하여 데이터를 처리하도록 하므로 모듈화 가능
자료구조를 설계할 때 특정 프로그램에 맞추어 설계하지 않고 다양한 프로그램에서 사용될 수 있도록 범용화하여 설계함으로써 가능



자료구조의 분류

자료구조는 크게 선형구조와 비선형 구조로 나눌 수 있다

선형구조는 자료가 일렬로 연결되어 있는 형태로 구성하는 방법이고 비선형구조는 자료의 구성이 일렬이 아닌 특별한 형태를 띠는 구조이다


선형 구조

- 배열 (Array)

- 연결 리스트(Linked List)

- 스택(Stack)

- 큐(Queue)

- 데크(Deque)


비선형구조

- 트리(Tree)

- 그래프(Graph)

댓글