목록Base/자료 구조 (4)
Judaeng

맨 처음에 힙을 들었을 때 엉덩이(hip)가 생각날 수도 있지만 힙은 heap이다. 무언가를 차곡차곡 쌓아 올린 더미라는 뜻이라고 한다. 그렇다면 힙(heap)이란 무엇인가요? 🤷♂️ 1. 힙(heap)은 완전 이진트리의 형태로 만들어져 있고, 우선순위 큐를 위하여 만들어진 자료구조이다. 2. 여러 개의 값들 중에서 최댓값이나 최솟값을 빠르게 찾아내도록 만들어진 자료구조이다. 3. 힙(heap)은 일종의 반정렬 상태(느슨한 정렬 상태)를 유지한다. 4. 힙 트리는 중복 값을 허용한다. 5. 부모 노드의 키 값이 자식 노드의 키 값보다 항상 큰(작은) 이진트리를 말한다.(아래 사진 참조) * 완전 이진트리란? * 마지막을 제외한 모든 노드의 자식들이 꽉 채워진 이진트리이다. 힙(heap)의 종류 최대 힙..

Graph(그래프)란 여러 개의 점들이 서로 복잡하게 연결되어 있는 관계를 표현한 자료구조라고 표현할 수 있다. 서로 다른 점들이 직접적인 관계를 가지고 있다면 바로 이어주는 선이 존재하고, 간접적인 관계를 가지고 있다면 다른 여러 점을 거쳐서 이어지는 선이 존재할 수 있다. 여기서 이야기하는 점은 그래프에서는 정점(vertex)이라고 표현하고, 선은 간선(Edge)라고 표현합니다. 즉, 연결되어 있는 객체 간의 관계를 표현할 수 있는 자료 구조가 Graph(그래프)이다. EX) 지도, 지하철 노선도의 최단 경로, 전기 회로의 소자들, 도로(교차점과 일방통행길), 선수 과목 등 let subway = { '교대': ['동대문운동장','사당','충무로'], '동대문운동장': ['교대','을지로3가','충무..

리스트 자료구조는 데이터를 나란히 저장하며, 중복된 데이터의 저장을 막지 않는다. 리스트는 수학적으로 중복을 허용하지 않는 '집합'과는 다르다. 리스트라는 자료구조는 구현 방법에 따라서 다음과 같이 크게 두 가지로 나뉜다. 선형 리스트(Linear List) : 배열을 기반으로 구현된 리스트(배열 리스트) 연결 리스트(Linked List) : 노드의 연결로 구현된 리스트 Linked List (연결 리스트) List(리스트)는 데이터에 순서를 매겨둔 자료 구조이다. 데이터들이 순서대로 쭉 늘어진 모양을 하고 있다. 데이터들은 차례대로 줄을 서고 있을 뿐 서로에 대해 모르는 상태이다. Linked List(연결 리스트)는 데이터들이 연락처를 주고 받아 자기 뒤에 있는 사람에게 연락을 할 수 있게 된 상태..

스택(Stack), 그리고 큐(Queue)는 모두 '자료구조'의 한 종류이다. 처리해야 할 데이터가 많아졌을 때, 어떤 순서로 저장하고 처리해야 할지를 정해둔 방식이라고 할 수 있다. 스택은 가장 마지막에 쌓인 데이터를 먼저 처리하고, 큐는 가장 먼저 쌓인 데이터를 처리한다는 점에서 차이가 있다. 데이터들을 임시 저장하는 가장 기본적인 자료구조인 스택(Stack), 큐(Queue)에 대해 좀 더 알아보자... 🤷♀️스택(Stack) ✏️스택(Stack)은 제한적으로 접근할 수 있는 나열 구조이다. 접근 방법은 언제나 목록의 끝에서만 일어난다. 스택은 한 쪽 끝에서만 자료를 넣거나 뺄 수 있는 선형구조(LIFO - Last In First Out)로 되어 있다. 스택은 '쌓다', '쌓이다', '포개지다'..