참고 사이트: https://geukggom.tistory.com/8 [C# 기초] #19.Graph - Graph의 정의, 종류, 구현 방법 1. Graph란? 정점(vertex(V))과 그 정점을 연결하는 간선(edge(E)을 하나로 모아 놓은 자료구조. 연결되어 있는 객체 간의 관계를 표현할 수 있는 자료구조입니다. G = (V, E) (ex) 지도, 지하철 노선도, 전기 geukggom.tistory.com 정점(vertex)과 그 정점을 연결하는 간선(edge)을 하나로 모아 놓은 자료구조이다. 그래프도 트리와 같이 라이브러리에서 제공되지 않기 때문에 직접 구조를 구현해야 한다. 1. 무방향 그래프 : 두 정점을 연결하는 간선에 방향이 없는 그래프. 두 정점 간 양 방향으로 이동 가능. 2. 방..
트리란? 트리는 비선형 자료구조이다. 비선형 자료구조란 배열, 리스트와 같이 인덱스(0,1,2,...)가 순서대로 나열된 선형 자료구조의 반대라고 생각하면 된다. 계층모델이다. 노드(node)들의 집합으로 구성되어 있다. 노드란 데이터를 일컫는다. 각 노드는 하나의 부모 노드(루트 노드)와 여러 개의 자식 노드를 가질 수 있다. 트리는 하나의 루트 노드에서 간선을 통해 다양한 노드를 방문, 탐색할 수 있는 구조를 가진다. 이진 트리(Binary Tree) 컴퓨터에서 사용되는 데이터 구조의 하나로, 루트가 있는 트리 구조에서 어떤 노드의 자식의 수가 최대 2개를 넘지 않는 트리를 말한다. 이진 트리의 순회: 이진 트리의 모든 노드를 특정한 순서대로 한 번씩 방문하는 것이다. 1. 전위순회(Pre-order..
연결리스트(Linked List)란? 연결리스트는 일반 리스트처럼 순차적으로 데이터를 추가/삭제할 수도 있고, 원하는 위치의 데이터를 추가/삭제할 수 있습니다. 이 연결된 구조체는 메모리 상에서 물리적으로 연속된 영역에 저장되지 않고, 각 노드가 개별적으로 할당되어 다음 노드를 가리키는 포인터를 이용하여 연결합니다. 하지만 인덱스를 통해 직접 접근하는 데는 제약이 있고, 탐색 연산의 비용이 높아 데이터의 삽입과 삭제가 빈번한 경우에 유용하게 사용됩니다. 여기서 노드란, 연결리스트나 트리 등과 같은 자료구조에서 기본적인 데이터 단위입니다. 각 노드는 두 가지 주요 요소로 구성됩니다. 1. 데이터(값): 노드가 저장하는 실제 정보입니다. 이 데이터는 정수, 문자열 등 어떤 형식이든 될 수 있습니다. 2. 링..