
📌 트리는 사이클을 가질 수 있는가?➡ "아니요, 트리는 절대 사이클을 가질 수 없습니다!" 🚀➡ 트리는 "사이클이 없는 연결 그래프"입니다.🚀 1️⃣ 트리의 정의Types of Trees in Data Structure based on the number of children출처: https://www.geeksforgeeks.org/types-of-trees-in-data-structures/ 📌 트리(Tree)란?사이클이 없는 "연결 그래프"N개의 노드가 있으면, 항상 "N-1개의 간선"을 가짐모든 노드가 연결되어 있으며, 경로가 유일함루트(Root)에서 시작하여 부모-자식 관계로 이루어짐📌 트리의 핵심 조건1️⃣ 모든 노드가 연결되어 있어야 함 (즉, 한 개의 연결 요소)2️⃣ 사이클이 ..
🔹1. 큐(Queue) https://ko.wikipedia.org/wiki/%ED%81%90_%28%EC%9E%90%EB%A3%8C_%EA%B5%AC%EC%A1%B0%29 출처:위키백과 FIFO(First In, First Out, 선입선출) = 먼저 들어온 데이터가 먼저 나가는 "공정한" 자료 구조라고 할 수 있다 ex. 줄서기✅ 큐의 특징먼저 넣은 데이터가 먼저 삭제됨 (FIFO)삽입(Enqueue): 큐의 끝에서 추가삭제(Dequeue): 큐의 앞에서 제거✅ 파이썬에서 큐 구현 방법collections.deque 사용 (가장 효율적, 추천! ✅)queue.Queue 사용 (멀티스레드 환경에서 사용 가능)list 사용 (비효율적 ❌, pop(0)은 O(N)이므로 추천하지 않음) from co..
데크(Deque) 우선순위 큐(Priority Queue) 스택과 큐의 특징을 모두 가지고 있는 복합 자료형으로 양쪽에서 삭제와 삽입을 모두 처리할 수 있음 이중 연결 리스트(가장 좋음), 배열, 연결 리스트로 구현 가능 어떤 특정 조건에 따라 우선 순위가 가장 높은 요소가 추출되는 자료형 -> 정렬 알고리즘을 기반으로 함 ex. 가장 큰 값을 추출하는 최댓값 추출 기본 리스트 자료형의 경우, 맨 뒤쪽 원소를 기준으로 삽입, 삭제를 수행하기 때문에 연산 리스트에 포함된 데이터의 수에 따라 시간 복잡도가 O(N)임 * append(), pop() deque에서는 리스트 자료형과 다르게 인덱싱, 슬라이싱 등의 기능은 사용할 수 없지만 연속적으로 나열된 데이터의 시작 혹은 끝부분에 데이터 삽입 및 삭제 시 매..
스택(Stack) 큐(Queue) LIFO(Last-in-First-Out) 마지막에 들어온 원소부터 반환함 -> 쌓인 접시를 생각해보자 FIFO(First-in-First-Out) 첫번째로 들어온 원소를 첫번째로 반환함 -> 줄서기 push() : 요소를 컬렉션에 추가함 pop() :아직 제거 되지 않은 가장 최근에 삽입된 요소를 제거함 데크(Deque)나 우선순위 큐(Priority Queue) 같은 변형이 존재함 너비 우선 탐색(Breadth-First Search)이나 캐시 구현에 사용 리스트는 스택과 큐의 모든 연산을 지원함. 다만, 리스트는 동적 배열로 구성되어 있어 큐의 연산을 수행하기에 효율적이지 않기 때문에 큐는 데크(Deque)라는 별도의 자료형을 사용하는 것이 좋은 성능을 낼 수 있음..