A heap tree is a complete binary tree where each parent node has a value greater than or equal to its children. There are two types - max-heap and min-heap. A heap can be represented as an array where the root is at index 1 and children at 2i and 2i+1. Operations like insertion and deletion involve bubbling/sifting nodes up or down the tree to maintain the heap property. Heapsort uses a heap to sort an array by repeatedly extracting the max/min element.