문제 7-1인 Deque를 갖고 Queue를 구현하는건 사실 쉽다… 나도 소스파일을 짜다 생각한건데, Queue가 Deque의 열화판같은거라서 헤더에서 필요한 기능만 갖다가 쓰면 된다.

CH8 트리의 개요(1)

08-1. 트리의 개요 ①

나무라는 뜻의 트리가 챕터 8의 주제이다. 드디어 첫 비선형구조를 다룬다.

선형자료구조를 다뤘던 관점을 그대로 갖고 비선형자료구조를 다루면 오해하기 쉽다.

자료구조는 데이터를 표현하는 학문이다. 라고 말한 적있다. 이게 선형자료구조에서는, 표현이 곧 저장이었다. 저장이 곧 자료구조의 목표였음. 연결리스트는 저장이 다였고, 스택과 큐는 거기에 데이터를 꺼내는 과정까지..

비선형자료구조는 진짜 데이터의 표현을 다룬다. 그래서 앞으로 설명하는 내용이 좀 달라질 수 있다.

앞에서 배운 연결리스트와 트리를 비교하면서 시작하겠다.

연결리스트를 생각해보자. 그때 다뤘던 자료구조는 다음의 것들을 주로 다루지 않았다.

  1. 노드의 추가
  2. 노드의 삭제
  3. a, b노드의 연결…

그럼 무엇을 다뤘는가? 엄밀히 말하면 데이터의 삽입이었다.

이 삽입과정에서, 기반이 배열이면 노드는 추가되지 않았고, 연결리스트기반이면 노드 추가가 부수적으로 따라왔던 것임. 즉 데이터의 삽입이 관련된 내용이 전 단계의 주요 주제였다.

지금까지의 학습 패턴을 보면… 저자가 트리와 관련된 구조체를 정의하고, 이를 다루는 함수들을 정의할텐데, 그 함수들은 데이터의 삽입과 삭제, 데이터 조회와 관련되있을 것이라고 생각하기 쉽다.