Implement a minimum binary heap class using an array instead of a dynamic allocation approach. The public section of your class must contain: constructor, destructor, enqueue, dequeue, isEmpty, isFull plus any other functions necessary to complete the tasks below. You must add traversal methods either to the public section or by implementing them as ("free") application functions. You need to include the definition of a BinaryNode class to fit your implementation. Write a driver program to demonstrate that your class works. The driver program should: 1. Create a heap by inserting the following data into an initially empty tree: 50, 25, 80, 20, 35, 70, 90, 23, 65, 100, 75, 30, 15, 68, 5,150, 18, 95 2. Print the array that holds the heap. 3. Insert 29 into the heap. 4. Print the array that holds the heap. 5. Dequeue an element from the heap 6. Print the heap nodes in the order visited by a postorder traversal 7. Dequeue an element from the heap. 8. Print the heap nodes in the order visited by a preorder traversal 9. Dequeue an element from the heap. 10. Print the heap nodes in the order visited by an inorder traversal 11. Dequeue an element from the heap. 12. Print the array that holds the heap. When printing the heap, print the values horizontally to save space (and paper!). Be sure to comment your code in a clear and consistent manner.
## Deliverables
1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done. 2) Installation package that will install the software (in ready-to-run condition) on the platform(s) specified in this bid request. 3) Complete ownership and distribution copyrights to all work purchased.
## Platform
Visual Studio C++