implementing heap as a binary tree

I am trying to implement heap in CLisp. I have already done it by making a linear data strcuture with no left / right pointers. But now I want to use a nested list format which contains (el () ()) at the highst level.
The problem I am facing with is how to define a recursive case for insertion. Heap requires the tree to be complete.

I approach the issue as follows:

1. I will take a heap and an element
2. I will add the element in the last node keeping it a complete tree
3. I wil swap the child with parent if it is greater than the parent

But I am stuck at the second step i.e. how to add an element without making the tree incomplete? KIndly help me on this!!!!!!!

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

This is OT

This isn't really on topic for LtU (and it sounds like a homework assignment to boot).

Ask for help from your TA or try one of the CLisp specific sites or lists.