Define a Binary Tree
A normal tree has no restrictions on the number of children each node can have. A binary tree is made of nodes, where each node contains a “left” pointer, a “right” pointer, and a data element.
There are three different types of binary trees:

How is a Binary Heap Usually Implemented?
A binary heaps are commonly implemented with an array. Any binary tree can be stored in an array, but because a binary heap is always a complete binary tree, it can be stored compactly. No space is required for pointers; instead, the parent and children of each node can be found by arithmetic on array indices:

What is a Binary Heap?
A Binary Heap is a Binary Tree with following properties:

What is a Binary Search Tree?
Binary search tree is a data structure that quickly allows maintaining a sorted list of numbers.
The properties that separate a binary search tree from a regular binary tree are:
