본문 바로가기

Data Structure2

[Stack/Queue] 자료구조 스택, 큐 스택(Stack)이란? 스택(stack)이란 쌓아 올린다는 것을 의미한다. 따라서 스택 자료구조라는 것은 책을 쌓는 것처럼 차곡차곡 쌓아 올린 형태의 자료구조를 말한다. 스택(Stack)의 특징 LIFO (Last In First Out) 구조 : 한쪽 끝에서만 자료를 넣고 뺄 수 있는 구조, 가장 마지막에 들어온 자료가 가장 먼저 나간다. 스택은 오직 맨 위 top을 통해서만 자료를 삽입 push 할 수 있고, 자료를 삭제 pop 할 수 있다. 자료가 없을 때 pop하는 오류를 stack underflow, 스택의 크기 이상의 자료를 push 하려고 할 때의 오류를 stack overflow라고 함. 큐(Queue)란? Queue의 사전적 의미는 1. (무엇을 기다리는 사람, 자동차 등의) 줄 , 혹은.. 2021. 8. 18.
[Heap] 자료구조 힙 자료구조 ‘힙(heap)’이란? 완전 이진 트리의 일종으로 우선순위 큐를 위하여 만들어진 자료구조이다. 완전 이진 트리 : 마지막을 제외한 모든 노드에서 자식들이 꽉 채워진 이진트리 여러 개의 값들 중에서 최댓값이나 최솟값을 빠르게 찾아내도록 만들어진 자료구조이다. 힙은 일종의 반정렬 상태(느슨한 정렬 상태) 를 유지한다. 큰 값이 상위 레벨에 있고 작은 값이 하위 레벨에 있다는 정도 간단히 말하면 부모 노드의 키 값이 자식 노드의 키 값보다 항상 큰(작은) 이진 트리를 말한다. 힙은 최댓값 또는 최솟값을 쉽게 뽑기 위한 자료구조 임으로 힙 트리에서는 중복된 값을 허용한다. (이진 탐색 트리에서는 중복된 값을 허용하지 않는다.) 힙(heap)의 종류 최대 힙(max heap) 부모 노드의 키 값이 자식 .. 2021. 8. 16.