
지난번 포스팅에서는 자료구조의 비선형 구조 중에서 트리에 대해 알아보았습니다. 이번에는 대표적인 비선형 구조인 그래프에 대해 알아보려고 합니다. 그래프와 트리의 관계를 간단하게 나타내자면 그래프가 트리보다 더 큰 범위라고 생각하면 됩니다. 그래프 중에서 사이클이 없는 그래프를 트리라고 이야기하며 이외의 형태를 그래프라고 칭합니다. 그래프와 트리의 몇 가지 차이점이 더 있는데 그것에 대해서는 "비선형 구조 트리" 글에 조금 더 자세히 정리해두었습니다. 지금부터 그래프의 간단한 용어 정리와 함께 그래프의 종류에 대해서 알아보겠습니다. 그래프의 정의 그래프는 정점(Node, Vertex)과 그 정점을 연결하는 간선(Edge)으로 이루어진 구조를 의미합니다. 위의 두 개의 사진 모두 그래프이며 그중 오른쪽처럼 ..

자료구조는 선형 구조와 비선형 구조로 분류를 할 수 있습니다. 지난번 포스팅에서는 선형 구조인 스택, 큐, 데크, 리스트에 대해 알아보았습니다. 이번에는 비선형 구조 중 트리에 대해 알아보려고 합니다. 트리와 그래프는 사이클의 유무에 따른 차이가 있습니다. 사이클이 있는 형태를 그래프라고 하며 그래프 중 사이클이 없는 형태를 트리라고 합니다. 실생활에서 떠올려 볼 수 있는 것은 트리는 조직 관계도, 그래프는 2호선 지하철 노선도, 통신망 정도 생각해볼 수 있겠습니다. 트리 트리의 정의에 대해 조금 더 살펴보겠습니다. 트리는 노드와 엣지를 사용해서 사이클이 없게 구성한 그래프이며 방향이 있는 방향 그래프입니다. 위 이미지에서 A를 루트 노드라고 하며 루트 노드는 트리에서 단 하나만 존재합니다. 또한 자식 ..

이번 포스팅에서는 자료구조의 간단한 정의와 함께 자료구조 중에서 선형구조에 대해 알아보려고 합니다. 우리가 프로그램을 작성할 때 이 프로그램이 얼마나 저장공간을 효율적으로 사용하는지, 이 프로그램을 실행하는 데 있어서 오랜 시간이 걸리지 않는지에 관한 문제는 매우 중요합니다. 자료 구조는 데이터 사이의 관계나 데이터 처리 방법, 데이터의 표현 및 관련 연산 등을 의미합니다. 상황에 맞추어 올바르게 선택한 자료구조는 프로그램의 효율성을 높여주게 됩니다. 자료구조를 이용해서 어떠한 자료를 오름차순 혹은 내림차순으로 정렬하거나, 원하는 데이터만 검색할 수 있으며 특정 자료를 빠르게 찾기 위한 인덱싱 등을 할 수 있습니다. 이러한 자료구조는 선형 구조와 비선형 구조로 나뉘는데 지금부터 선형 구조의 종류와 각각의..