본문 바로가기

STUDY/Data Structure2

[자료구조] heap(힙 자료구조) / Python heapq(힙큐) 스택(Stack) 과 큐(Queue) 큐 (queue) 는 컴퓨터의 기본적인 자료 구조의 한가지로, 먼저 집어넣은 데이터가 먼저 나오는 FIFO 구조로 저장하는 형식을 말한다. 우선순위 큐는 우선순위의 개념을 큐에 도입한 자료구조로, 데이터들이 우선순위를 가지고 있고 우선순위가 높은 데이터가 먼저 나가는 자료구조를 말한다. 우선순위 큐는 배열, 연결리스트, 힙으로 구현이 가능하다. 이 중에서 힙(heap)으로 구현하는 것이 가장 효율적이다. 힙(heap) 힙 (heap) 은 최댓값 및 최솟값을 찾아내는 연산을 빠르게 하기 위해 고안된 완전이진트리를 기본으로 한 자료구조로서 다음과 같은 힙 속성을 만족한다. A가 B의 부모노드이면, A의 key값과 B의 key값 사이에는 대소관계가 성립한다. 키 값의 대소.. 2021. 8. 11.
[자료구조] 해시 테이블(Hash Table) 회사 코드를 볼 때 해시테이블이라는 자료구조를 가끔씩 만났다. 시간이 없다는 핑계로 사용법만을 유추해서 코드를 이해하고 지나가기 바빴는데 오늘은 그 내용을 제대로 정리해보려고 한다. 해싱 (Hashing) 이란? 해시 함수는 임의의 길이의 데이터를 고정된 길이의 데이터로 매핑하는 함수이다. 해시 함수에 의해 얻어지는 값은 해시 값, 해시 코드, 해시 체크섬 또는 간단하게 해시라고 한다. 해싱은 임의의 데이터를 해시함수 (Hash Function)을 사용하여 고정된 크기의 값으로 변환하는 작업을 말한다. 해싱을 사용하여 데이터를 저장하는 자료구조를 해시 테이블 (Hash Table) 이라고 하며 이는 기존 자료구조인 이진탐색트리나 배열에 비해서 굉장히 빠른 속도록 탐색, 삽입, 삭제를 할 수 있다는 장.. 2021. 8. 6.