hara
자료구조란? 본문
-
자료구조란?
Data의 집합!
각 원소들이 논리적으로 정의된 규칙에 의해 나열되며,
자료에 대한 처리를 효율적으로 수행할 수 있도록 자료를 구분하여 표현한것

-
자료구조의 선택 기준
자료의 처리를 보다 효율적으로 하기 위해서 아래와 같은 사항들을 고려하여 사용해야 한다.
- 자료의 처리 시간
- 자료의 크기
- 자료의 활용 빈도
- 자료의 갱신 정도
- 프로그램의 용이성
-
자료구조의 선택 기준
1. 효율성(Efficiency)
목적에 맞는 자료구조를 이용하게 되면 데이터 처리의 효율을 높일 수 있다.
예를 들어 데이터의 양이 많다면 순차 검색(Linear Search)를 사용하는 것 보다 이분 검색(Binary Search)를 활용하는 것이 더 효율 적이다.
왜냐하면 학생이라는 테이블에 학생에 대한 데이터가 100만개 있다고 할때,
순차 검색으로 데이터를 검색하게 되면 운이 좋을때는 1번의 연산으로 찾을 수 있겠지만, 운이 없을경우에는 100만번의연산을 거쳐야 할 것이다. 이에 반해 이분 검색은 연산의 횟수가 훨씬 줄어든다.
2. 추상화(Abstraction)
추상화란 복잡한 자료, 모듈, 시스템 등으로 부터 핵심적인 개념만 간추려 내는 것이다.
자료구조를 이용하여 데이터를 처리할 경우 자료구조 자체를 구현하는 알고리즘에 중점을 두기보다
어느 시점에 데이터를 삽입, 추출하고, 이 데이터를 어떻게 사용할 것인지에 초점을 맞춘다.
예를 들어 스택(Stack)의 경우 후입선출 방식이고, push(), pop() 메소드를 통해 데이터 삽입, 추출 할 수 있다.
이는 구현하는 언어가 무엇인지보다 추상적인 개념에 대해 이해하고 있다면 사용할 수 있다는 것이다.
3. 재사용성(Reuseability)
자료구조를 설계할때 특정 프로그램에 맞추어 설계하지 않고 다양한 프로그램에서 사용될 수 있도록 범용화하여 설계한다.
-
자료구조의 분류

1. 단순 구조
정수, 실수, 문자, 문자열 등의 기본 자료형
2. 선형 구조
자료들 간의 앞뒤 관계가 1:1의 선형관계
- 배열(Array)
- 연결 리스트(Linked List)
- 스택(Stack): 후입선출(LIFO, Last In First Out)
- 큐(Queue): 선입선출(FIFO, First In First Out)
- 덱(Dequeue): 양쪽에서 삽입/인출 가능
3. 비선형구조
자료들 간의 앞뒤 관계가 1:N, N:N의 관계
- 트리(Tree)
- 그래프(Graph)
참고자료
- andrew0409.tistory.com/148
- m.blog.naver.com/PostView.nhn?blogId=islove8587&logNo=220548856458&proxyReferer=https:%2F%2Fwww.google.com%2F