Share Pastebin
Guest
Public paste!

Barebones Binary Search Tree

By: a guest | Mar 10th, 2010 | Syntax: Python | Size: 0.77 KB | Hits: 110 | Expires: Never
Copy text to clipboard
  1. def delete_node(parent, node, value):
  2.         if value < node.value:
  3.                 delete_node(node, node.left, value)
  4.         elif value > node.value:
  5.                 delete.node(node, node.right, value)
  6.         else:
  7.                 if node.left and node.right: # if both children exist
  8.                         pass
  9.                 elif node.left or node.right: # if one child exists
  10.                         if node.left: # left child exists
  11.                                 if parent.left.value == value:
  12.                                         parent.left = node.left
  13.                                 elif parent.right.value == value:
  14.                                         parent.right = node.left
  15.                         else: # right child exists
  16.                                 if parent.left.value == value:
  17.                                         parent.left = node.right
  18.                                 elif parent.right.value == value:
  19.                                         parent.right = node.right
  20.                 else: # no children
  21.                         if parent.left.value == value:
  22.                                 parent.left = None
  23.                         elif parent.right.value == value:
  24.                                 parent.right = None