트리(Tree)란? 트리는 계층적 구조를 가진 비선형 자료구조입니다. 각 요소는 노드(Node)라고 하며, 한 노드에서 다른 노드로 가는 연결선을 간선(Edge)이라고 합니다. 트리는 한 개의 루트 노드(Root Node)에서 시작하며, 각 노드는 여러 자식 노드(Child Node)를 가질 수 있습니다. 트리의 주요 특징 계층적 관계: 트리는 부모-자식 관계를 통해 데이터를 조직합니다. 루트 노드: 트리의 최상위에 있는 노드입니다. 자식 노드: 하위에 연결된 노드들입니다. 리프 노드(Leaf Node): 자식이 없는 노드입니다. 서브트리(Subtree): 노드와 그 자손들로 구성된 트리입니다. 트리의 종류 이진 트리(Binary Tree): 각 노드가 최대 두 개의 자식을 가집니다. 이진 탐색 트리(B..
분류 전체보기
큐(Queue)란? 큐는 선입선출(First In, First Out; FIFO) 방식으로 작동하는 선형 자료구조입니다. 큐에서 데이터는 한쪽 끝에서 추가되고, 반대쪽 끝에서 제거됩니다. 큐의 주요 특징 선입선출 구조: 가장 먼저 들어온 요소가 가장 먼저 나갑니다. 두 개의 주요 연산: Enqueue: 큐의 뒤쪽에 요소를 추가합니다. Dequeue: 큐의 앞쪽에서 요소를 제거하고 반환합니다. 추가 연산: Peek/Front: 큐의 맨 앞에 있는 요소를 반환하지만 제거하지는 않습니다. IsEmpty: 큐가 비어 있는지 확인합니다. 큐의 사용 사례 대기열 관리: 은행, 티켓 창구, 프린터 작업 등 순차적 처리가 필요한 곳에서 사용됩니다. 데이터 버퍼링: 네트워크 트래픽 관리, 메시지 큐 시스템 등 데이터의 ..
스택(Stack)이란? 스택은 후입선출(Last In, First Out; LIFO) 방식으로 작동하는 선형 자료구조입니다. 스택에서는 새로운 요소가 추가되거나 제거될 때, 항상 같은 한쪽 끝(스택의 'top')에서 이루어집니다. 스택의 주요 연산 Push: 스택의 맨 위에 요소를 추가합니다. Pop: 스택의 맨 위에 있는 요소를 제거하고 반환합니다. Peek/Top: 스택의 맨 위에 있는 요소를 반환하지만 제거하지는 않습니다. IsEmpty: 스택이 비어있는지 확인합니다. 스택의 특징 후입선출 구조: 마지막에 들어간 요소가 가장 먼저 나옵니다. 한쪽 끝에서만 작업: 모든 작업은 스택의 'top'에서만 이루어집니다. 스택의 사용 예시 웹 브라우저의 뒤로 가기 기능, 실행 취소(undo) 기능. 함수 호출..
연결 리스트(Linked List)란? 연결 리스트는 데이터 요소(노드)들이 포인터를 통해 순차적으로 연결된 선형 자료구조입니다. 각 노드는 데이터와 하나 또는 여러 개의 포인터(다음 노드에 대한 참조)를 포함합니다. 연결 리스트의 종류 단일 연결 리스트(Singly Linked List): 각 노드가 다음 노드만을 가리킵니다. 이중 연결 리스트(Doubly Linked List): 각 노드가 이전 및 다음 노드를 가리킵니다. 원형 연결 리스트(Circular Linked List): 마지막 노드가 첫 번째 노드를 가리키는 형태입니다. 연결 리스트의 특징 동적 크기: 리스트의 크기를 실행 시간에 변경할 수 있습니다. 데이터 삽입 및 삭제 용이: 포인터만 변경하면 되므로, 배열에 비해 삽입 및 삭제가 용이..