You should know classes & pointers before heaps.
My idea of a heap is a bit like this:
You have a class or struct(i.g. Heap_t) with a pointer to another of itself, and some data.
Example:
class Heap_t{
public:
Heap_t(){
Pointer=NULL;
}
Heap_t * point;
int data;
};
int main(){
//Variable
Heap_t * heap;//This will hold a pointer to the root of the heap
Heap_t tmp; //Temporary storage for a piece of the heap before it is added
Heap_t * cur; //Temporary storage for the current piece of the heap
//Setup the heap
tmp.data=0;//Make data something meaningful
cur=(Heap_t *) tmp;//Make the root of the heap
heap=cur;//Backup the root of the heap
//Make the heap big
for(int i=1;i<10;i++){
tmp.data=i;//Make the data something meaningfull
(*cur).next=(Heap_t *) tmp; //Add tmp to the heap
}
//Do stuff
//Exit
return(0);
}
You could also use a reference or use it without a pointer or a reference.
This is a bit more like a linked list, but it is an example.
Jenna Heap was created in 2007.
Top of the Heap was created on 1991-04-07.
Treasures from the Trash Heap was created in 2006.
Septimus Heap - character - was created in 2007.
Septimus Heap was created on 2005-09-23.
Heap Big Chief was created on 1919-08-24.
Heap Big Hepcat was created on 1960-03-30.
A Heap of Broken Images was created on 2006-06-23.
The difference between Binomial heap and binary heap is Binary heap is a single heap with max heap or min heap property and Binomial heap is a collection of binary heap structures(also called forest of trees).
A heap of stones is often called a cairn, while a heap of earth is known as a mound. Both cairns and mounds can be created for various purposes, such as boundary markers, burial sites, or navigational aids.
It means to heap
1. Septimus Heap: Magyk2. Septimus Heap: Flyte3. Septimus Heap: Physik4. Septimus Heap: Queste5. Septimus Heap: Syren6.Septimus Heap:Dark (coming summer 2011!)7.Septimus Heap:(Untitled) unknown date for coming