본문 바로가기
728x90

자료구조10

[자료구조] 우선순위 큐(Priority Queue)와 힙(Heap) 우선순위 큐(Priority Queue) 일반적인 큐(Queue)는 FIFO(First-In First-Out) 구조로 먼저 들어간 데이터가 먼저 나오는 구조이지만 우선순위 큐(Priority Queue)는 들어간 순서에 상관없이 우선순위가 높은 데이터가 먼저 나오는 구조이다. 우선순위 큐의 예시 자료구조를 사용해 "병원의 응급실 환자를 처리하는 시스템"을 만든다고 가정해보자. 📌스택(Stack) 스택은 LIFO(Last-In First-Out) 구조로 마지막에 들어온 사람이 먼저 나가게 됩니다. 그럼 가장 먼저 응급실에 실려온 사람이 가장 나중에 진료를 받게 되겠죠? 뭔가 이상합니다. 📌큐(Queue) 큐는 FIFO(First-In First-Out) 구조로 먼저 들어온 사람이 먼저 나가게 됩니다. 그.. 2022. 6. 30.
[자료구조] 트리(Tree) 트리(Tree) 트리는 연결리스트를 기반으로 한 새로운 데이터 구조이다. 연결리스트에서 노드의 연결이 1차원이었다면 트리에서 노드의 연결은 2차원이다. 트리는 사진과 같이 최상위 노드(A)가 있고 그 아래 하위 노드(B, C) 그 아래 또 다른 하위 노드(D, E, F, G)가 있는 부모(parent)와 자식(child) 형태이다. 트리 관련 용어 노드(node) : 트리의 구성 요소 (ex : A, B, C, D, E, F, G, H, I, J) 루트 노드(root node) : 트리 구조에서 최상위에 존재하는 노드 (ex : A) 단말 노드(terminal/leaf node) : 아래로 또 다른 노드가 연결되어 있지 않은 노드 (ex : F, G, H, I, J) 비단말 노드(nonterminal/i.. 2022. 6. 8.
[자료구조] 큐(Queue) 큐(Queue) 큐(Queue : 대기줄)는 사람들이 놀이기구를 타기 위해서 기다리는 줄과 같이 양 방향에서 입력과 출력이 진행되는 자료구조를 뜻한다. 먼저 줄을 선 사람이 먼저 놀이기구를 탈 수 있는 것처럼 선입선출(First-In First-Out, FIFO) 구조로 가장 먼저 들어온 데이터가 가장 먼저 리턴, 출력된다는 뜻이다. 큐의 연산 Enqueue : 큐에 데이터를 넣는 연산 Dequeue : 큐에서 데이터를 꺼내는 연산 front : 큐의 맨 앞 rear : 큐의 맨 뒤 큐 VS 스택 큐는 앞에서 포스팅한 스택과 함께 언급되고 비교되는 자료구조이다. 스택은 마지막에 들어간 데이터가 가장 먼저 나오는(LIFO) 구조인 반면 큐는 먼저 들어간 데이터가 먼저 나오는(FIFO) 구조이다. 이것이 스.. 2022. 6. 3.
[자료구조] 스택(Stack) 실습 (feat. 연결 리스트) 보호되어 있는 글 입니다. 2022. 6. 3.
[자료구조] 스택(Stack) 실습 (feat. 배열) 스택(Stack) 배열을 기반으로 하는 스택 구현은 자료구조 중 매우 쉬운편이다! 홧팅 스택의 개념이 궁금하다면? [자료구조] 스택(Stack) 스택(Stack) 스택(Stack : 쌓다)은 사진에서 사과를 쌓을 때 위로 쌓는 것만 가능하듯이 한 방향으로만 입력할 수 있으며, 구조 중간에 값을 끼워 넣어 저장할 수 없다. 즉, 같은 크기의 자료를 정해 jin-network.tistory.com 배열 기반 Stack 소스 코드 📌ArrayBaseStack.h //출처 : 윤성우의 열혈 자료구조 //ArrayBaseStack.h #ifndef __AB_STACK_H__ #define __AB_STACK_H__ #define TRUE1 #define FALSE0 #define STACK_LEN100 typed.. 2022. 6. 3.
[자료구조] 스택(Stack) 스택(Stack) 스택(Stack : 쌓다)은 사진에서 사과를 쌓을 때 위로 쌓는 것만 가능하듯이 한 방향으로만 입력할 수 있으며, 구조 중간에 값을 끼워 넣어 저장할 수 없다. 즉, 같은 크기의 자료를 정해진 한 방향으로만 입력, 저장, 삭제가 가능하다. 맨 아래 있는 사과를 꺼내기 위해서 가장 위에 있는 사과부터 꺼내야 하는 것처럼 후입선출(Last-In First-Out, LIFO) 구조로 가장 마지막에 들어온 데이터(사과)가 가장 먼저 리턴, 삭제된다는 뜻이다. 스택의 연산 📌 push(item) item 하나를 스택의 가장 윗부분에 추가한다. 📌 pop() 스택에서 가장 위에 있는 항목을 제거한다. 📌 peek() 스택의 가장 위에 있는 항목을 반환한다. (이번에 꺼낼 값이 뭔지 확인한다) 📌 .. 2022. 6. 3.
728x90