Download presentation
Presentation is loading. Please wait.
1
Review: Search Linear Search Binary Search Search demos: –http://www.cosc.canterbury.ac.nz/people/muku ndan/dsal/appldsal.htmlhttp://www.cosc.canterbury.ac.nz/people/muku ndan/dsal/appldsal.html
2
Binary Search Tree A binary tree where every node's left subtree has values less than the node's value, and every right subtree has values greater. A new node is added as a leaf. Check out this applet: –http://www.cs.jhu.edu/~goodrich/dsa/trees/btre e.htmlhttp://www.cs.jhu.edu/~goodrich/dsa/trees/btre e.html
3
Remove node algorithm Find element –If it is a leaf just delete it –If it has one child adjust the parent to point to the child (thus bypassing the node) –If it has two children Replace data with the smallest data of the right subtree Recursively delete the node which now needs to be removed
4
remove private BinaryNode remove( AnyType x, BinaryNode t ) { /* 1*/if( t == null ) return t; // Item not found; do nothing int compareResult = x.compareTo( t.element ); /* 2*/if(compareResult < 0 ) t.left = remove( x, t.left ); /* 3*/else if(compareResult > 0 ) t.right = remove( x, t.right ); /* 4*/else if( t.left != null && t.right != null ) // Two children { t.element = findMin( t.right ).element; t.right = remove( t.element, t.right ); } /*567*/else t = ( t.left != null ) ? t.left : t.right; return t; }
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.