전산화의 예시를 들 수 있다.
예를 들어, 현실에 존재하는 영화 예매를 어떻게 컴퓨터로 옮길 것인가?
현실에서 수행되는 프로세스는?
1. 고객은 어떤 영화를 볼지 고른다.
2. 고객은 영화를 예매하기 위해 줄을 선다.
3. 고객은 차례가 왔을 때 좌석을 선택한다.
4. 고객은 최종적으로 돈을 지불한다.
반면, 소프트웨어에서는 어떻게 처리하는가?
1. 영화를 검색한다: 빠르게 영화를 검색하고 자동 완성 기능을 제공하기 위해 Trie 자료구조를 이용
2. 고객이 많을 경우 줄을 서야 한다: 티켓팅 접속자 수를 제한하기 위해 Queue 자료구조를 이용
3. 고객은 좌석을 선택 할 수 있어야 한다: HashTable 자료구조 이용
결국 자료구조는 일차원적인 컴퓨터 메모리를 현실에 대응하도록 구조를 만든 것이라 할 수 있다.
단순 구조: 정수, 실수, 문자열, 논리
선형 구조: 배열, 연결 리스트, 스택, 큐
비선형 구조: 트리, 그래프
선형구조: 한 원소 뒤에 하나의 원소 만이 존재하는 형태로 자료들이 선형으로 나열되어 있는 구조를 가진다. 선형 구조에 해당되는 자료구조는 배열, 연결 리스트, 스택, 큐 등이 있다.
비선형 구조: 원소 간 다대다 관계를 가지는 구조로 계층적 구조나 망형 구조를 표현하기에 적절하다. 비선형 구조에 해당되는 자료구조는 트리와 그래프 등이 있다.
- 완벽한 자료 구조는 없다 *
더 좋고 더 나쁜 자료구조는 없다. 특정 상황에서 유용한 자료 구조와 덜 유용한 자료 구조가 존재할 뿐이다. 우리는 상황에 맞게 적절한 자료 구조를 선택하면 된다.