Posted by: Overhaulin May 17, 2011
COmputer Science Help
Login in to Rate this Post:     0       ?        
 I have a prolog program to write and was wondering if anyone out there could please please help me. I have done almost half of it and am stuck. i would be really thankful to anyone who would be wiling to help me.
Thanks in advance.

The program is about correctly deleting the values from a binary search tree while maintaing the search tree property.
The search tree properties are as follows:

1. If there are no childrenand the value to delete does not match the value in teh node, then ignore the delete request.
2. If val to del is greater than the val at the node, then delete ot from rt subtree
3. If the value to del is less than the value at the node, then delete it from left subtree.
4. If val u wish to delete is a  node with no left subtree, then you may delete the node by replacing it with its right subtree.
5. If the val you wish to delete is a node with no rt. subtree, then yoy may delete the node by replacing it with its left subtree.
6. If the val you wish to delete is in a node with both a left and rt ubtree, then you may delete the node by getting the left most value of the right subtree,call this A and then replacing the value in the node by A and deleting A from the right subtree.

I have written the codes for the first 3:

1. delTree(Val,node(N,nil,nil),node(N,nil,nil)) :- Val \= N.
2. delTree(Val,node(N,L,R),node(N,L,DR)):- Val > N, delTree(Val,R,DR).
3. delTree(Val,node(N,L,R),node(N,DL,R)):- Val< N, delTree(Val,L,DL).

Thanks in advance





Read Full Discussion Thread for this article