A heap is a memory storage and retrieval construct I learned about in college. It's a memory allocation and storage scheme not terribly unlike a stack. I honestly can't remember the exact details (from 1972...) but it's used extensively in compilers and other system level programming to manage limited memory efficiently. Google "memory heap", or consult Knuth's "The Art of Computer Programming" Volume 3 page 145. [Addison-Wesley, 1973]
Jim