Re: How to implement heap as a binary tree in lisp?
- From: "andrew.baine@xxxxxxxxx" <andrew.baine@xxxxxxxxx>
- Date: Thu, 27 Sep 2007 14:09:17 -0700
On Sep 27, 1:34 pm, riahasa...@xxxxxxxxx wrote:
I am trying to implement heap in CLisp. I have already done it in 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!!!!!!!
Keep a weight slot in each node. Then you can calculate which
direction to go based on weight. For example
(dir 1) -> :left
(dir 2) -> :right
write out (dir 3, 4, 5, 6, 7) and you'll see the pattern. Then be
sure to update weight on insertion or deletion.
Andrew
.
- Follow-Ups:
- Re: How to implement heap as a binary tree in lisp?
- From: riahasan85
- Re: How to implement heap as a binary tree in lisp?
- References:
- How to implement heap as a binary tree in lisp?
- From: riahasan85
- How to implement heap as a binary tree in lisp?
- Prev by Date: Re: (not about) Re: How To Learn Lisp
- Next by Date: Re: (not about) Re: How To Learn Lisp
- Previous by thread: How to implement heap as a binary tree in lisp?
- Next by thread: Re: How to implement heap as a binary tree in lisp?
- Index(es):
Relevant Pages
|