-효율성
-추상화
-재사용성
1. 효율성
자료구조를 사용하는 목적은 효율적인 데이터의 관리 및 사용에 있다. 따라서 적절한 자료구조를 선택하여 사용한다면 효율성이 올라간다.
한가지 예를 들어보자면 검색에 대한 알고리즘을 구현할때, 데이터의 양이 많다면 순차 검색(Linear Search)를 사용하는 것 보다 이분 검색(Binary Search)를 활용하는것이 더 효율 적이다.
왜냐하면 학생이라는 테이블에 학생에 대한 데이터가 100만개 있다고 할때, 순차 검색으로 데이터를 검색하게 되면 운이 좋을때는 1번의 연산으로 찾을 수 있겠지만, 운이 없을경우에는 100만번의 연산을 거쳐야 한다.
이에 반해 이분 검색은 연산의 횟수가 훨씬 줄어들죠. 이와같이 목적에 맞는 자료구조를 사용하는것이 효율적이다.
2. 추상화
추상화란 복잡한 자료, 모듈, 시스템 등으로 부터 핵심적인 개념만 간추려 내는 것이다.
자료구조를 구현할 때 중요한 것은 어느 시점에 데이터를 삽입할 것이며, 어느 시점에 이러한 데이터를 어떻게 사용할것인지에 대해서 초점을 맞출수 있기 때문에 구현 외적인 부분에 더 시간을 쏟을 수 있다.
마찬가지로 자료구조 내부의 구현은 중요하지 않다.
어떻게 구현했는지 보다 어떻게 사용해야 하는지를 알고 있어야 한다.
예를들어 스택(Stack)의 경우 먼저 들어간것이 나중에 나오는 FILO(First In Last Out)의 형태를 가지고 있다.
그리고 push() 함수를 이용해서 데이터를 삽입할 수 있고, pop() 함수를 이용해서 데이터를 추출할 수 있다.
그 함수 내부 구현이 어떻게 되었는지는 중요하지 않다.
사람마다 다른 코드를 작성할 것이고, 사용 언어, 개발 툴등 환경적인 변수에 의해서 다른 코드가 나올 것이기 때문에
추상적인 개념에 대해서만 이해하고 있다면 사용할 수 있다.
3. 재사용성
자료구조를 설계할때 특정 프로그램에서만 동작하게 설계하지는 않는다.
다양한 프로그램에서 동작할 수 있도록 범용성 있게 설계하기 때문에
해당 프로젝트가 아닌 다른 프로젝트에서도 사용할 수 있다.
'IT기술 > 자료구조' 카테고리의 다른 글
자료구조 - LinkedList (0) | 2022.09.12 |
---|---|
자료구조 - Array List (0) | 2022.09.12 |
자료구조 - 리스트(list) (0) | 2022.09.12 |
자료구조 - 배열(Array) (0) | 2022.09.12 |
자료구조란? (0) | 2022.09.12 |