Treapby Pigbrain

Treap

  • Tree + Heap = Treap
  • BST(Binary Search Tree)의 일종이다
  • 정렬된 상태로 BST를 만들게 되면 Liked List와 동일한 형태가되는 문제를 보완한 형태이다
  • 노드에 우선순위(priority)가 정해져 있다
  • 부모 노드는 자식 노드보다 낮은 우선순위(priority) 값을 갖는다 (Heap의 특성)
    • 삽입/삭제시 우선순위(priority)에 대한 규칙이 어긋나면 회전시킨다
  • Treap은 평균적으로 O(log N)의 시간 복잡도를 가지고 구현하기 쉽다
    • Red-Black Tree, AVL Tree는 모든 연산에서 O(log N)의 시간 복잡도를 가지지만 구현하기 어렵다


Example

Code


참고

  • http://www.cs.cornell.edu/courses/cs312/2003sp/lectures/lec26.html
  • http://users.cis.fiu.edu/~weiss/dsaajava/code/DataStructures/Treap.java
  • http://opendatastructures.org/ods-java/7_2_Treap_Randomized_Binary.html
Published 11 February 2016