알고리즘9 자료구조 - 연결 리스트(Linked List) 연결 리스트(Linked List) 이란? 연결 리스트(Linked List)는 데이터를 노드(Node)라는 단위로 관리하는 자료구조입니다. 각 노드는 두 가지 정보를 담고 있습니다. 첫 번째로는 실제로 저장하고자 하는 데이터(예를 들어, 정수, 문자열 등)를 가지고 있고, 두 번째로는 다음 노드를 가리키는 포인터(Pointer)를 갖습니다. 이러한 연결 리스트의 구조는 각 노드가 메모리의 임의의 위치에 위치할 수 있다는 특징을 가집니다. 즉, 각 노드들은 메모리의 어떤 곳이든지 분산되어 있을 수 있습니다. 이와 달리 배열(Array)은 연속적인 메모리 공간에 데이터가 순차적으로 저장되며, 각 요소들은 인덱스를 통해 접근됩니다. 연결 리스트에서 각 노드는 데이터와 다음 노드를 가리키는 포인터를 포함하고 .. 2024. 4. 1. 자료구조 - 배열(Array) 배열(Array) 이란? 배열은 프로그래밍에서 데이터를 구조화하고 관리하는 데 중요한 도구입니다. 이는 동일한 유형의 데이터 요소들이 순서대로 저장되는 구조를 가지고 있습니다. 각 요소는 배열 내의 고유한 위치를 가리키는 인덱스를 통해 접근할 수 있습니다. C#에서 배열은 데이터 유형과 크기가 고정된 메모리 블록으로 구성되어 있으며, 각 요소는 해당 데이터 유형의 값을 포함하고 있습니다. 배열은 프로그래밍에서 매우 널리 사용되며, 데이터를 효율적으로 저장하고 접근할 수 있는 강력한 도구로서 기능합니다. 이는 데이터를 순차적으로 저장하여 연속적인 메모리 공간을 활용함으로써 빠른 접근 및 처리를 가능케 합니다. 배열은 데이터의 집합을 간편하게 관리할 수 있도록 도와주며, 여러 가지 알고리즘 및 자료구조의 기.. 2024. 3. 31. 깊이 우선 탐색 DFS DFS(깊이 우선 탐색) 이란? DFS(깊이 우선 탐색)은 그래프나 트리 구조에서 한 정점으로부터 시작하여 깊이를 우선적으로 탐색하는 알고리즘입니다. 이 알고리즘은 주로 그래프의 모든 정점을 방문하거나 특정한 조건을 만족하는 정점을 찾는 데 사용됩니다. DFS는 스택(Stack) 또는 재귀 함수를 통해 구현될 수 있습니다. 시작 정점에서 출발하여 다음 정점으로 이동하고, 그 다음 정점에서 또 다시 다음 정점으로 이동하는 식으로 깊이를 우선적으로 탐색합니다. 이러한 과정에서 방문한 정점은 방문했다는 표시를 하고, 이미 방문한 정점이라면 더 이상 탐색을 진행하지 않고 이전 단계로 되돌아갑니다. DFS 코드 예시 (C#) 아래 코드는 그래프에서 깊이 우선 탐색을 수행하는 예시입니다. 각 정점을 리스트로 표현하.. 2024. 3. 28. 너비 우선 탐색 BFS BFS(너비 우선 탐색) 이란? BFS(너비 우선 탐색)는 그래프 탐색 알고리즘 중 하나로, 시작 정점으로부터 인접한 모든 정점을 먼저 탐색하는 방법입니다. 이 알고리즘은 그래프 내의 모든 정점을 방문하고, 최단 경로를 찾거나 특정 조건을 만족하는 노드를 찾을 때 유용하게 사용됩니다. BFS는 큐(Queue) 자료구조를 사용하여 구현됩니다. 탐색이 시작되면 시작 노드를 큐에 넣고 방문했다는 표시를 합니다. 그 후 큐에서 노드를 하나씩 꺼내어 해당 노드의 인접 노드를 큐에 넣고 방문했다는 표시를 합니다. 이 과정을 큐가 비어있을 때까지 반복합니다. 이러한 방식으로 탐색하면 시작 노드에서부터 거리가 가까운 노드부터 순차적으로 방문하게 됩니다. BFS 코드 예시 (C#) 아래 코드는 그래프를 구성하고 BFS .. 2024. 3. 27. 이전 1 2 3 다음