Now that we can add a task to our heap and we can see that our
heapifyUp() function is working as advertised, it is time to start getting access to the items we add to our To-Do List so we can get things done!
The first access function we are going to create is
getTask() which will work the same as a
peek() function. It would be a pain if every time we accessed the heap we had to remove the top item to work on it and then put it back into the heap if we didn’t finish it. Besides making our code base less readable, it also eats up processing power every time we have to reorganize the heap.
getTask() will give the user access to the task on top of the heap without actually removing the
TaskNode from the heap. To execute this process first we check if the heap has items and if it does, we read the top task and present it to the user so they can begin work. Since we are storing our heap in an array, the top of the heap is located at index 0.
Under the getTask comments in the
MinHeap class, create a new function,
getTask() that has no parameters and returns nothing. Leave the function body empty.
Inside the function create an
if statement that checks if the
heap has any elements in it. If it doesn’t, print
Your task list is empty, good job!. At the bottom of the file, add a call to
toDoList has been instantiated, but before any tasks have been added.
else clause to print the next task to the user by accessing the first element of the heap. It should print “Your next task is: “ followed by the element. There are many ways to do this, as long as the output has the exact text specified, you can complete this instruction as you see fit.
After the tasks have been added to
toDoList, make another call to
getTask() and see your results.