Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

Range query over binary search tree?

Name: Anonymous 2008-09-09 8:01

Okay, so does anyone know or can think of an efficient way to complete a range query over a given number range ie (x, y) in a standard binary search tree, using a minimum number of key comparisons? I wrote one that finds the minimum value <= x and then traverses the tree value by value until it finds a value that is above y, but I just realised that it would be a lot more efficient if it was recursive, and did not provide the range query's response in a sorted order.

Unfortunately, I have writer's block. Still getting used to getting my head in algorithm-space. Can anyone give me some pointers to get me started?

Name: >>18 2008-09-11 9:48

>>19
THIS IS NO LAUGHING MATTER!!!
$ java -version
java version "1.5.0_14-p8"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_14-p8-root_07_may_2008_12_21)
Java HotSpot(TM) Client VM (build 1.5.0_14-p8-hark_07_may_2008_12_21, mixed mode)

$ cat TailRecursionTest.java
public class TailRecursionTest {
        private static int loop( int i ) {
                return loop( i );
        }

        public static void main( String[] args ) {
                loop( 0 );
        }
}

$ javac TailRecursionTest.java
$ java TailRecursionTest
Exception in thread "main" java.lang.StackOverflowError
        at TailRecursionTest.loop(TailRecursionTest.java:3)
        at TailRecursionTest.loop(TailRecursionTest.java:3)
        at TailRecursionTest.loop(TailRecursionTest.java:3)
        at TailRecursionTest.loop(TailRecursionTest.java:3)
        at TailRecursionTest.loop(TailRecursionTest.java:3)
        at TailRecursionTest.loop(TailRecursionTest.java:3)
        at TailRecursionTest.loop(TailRecursionTest.java:3)
        at TailRecursionTest.loop(TailRecursionTest.java:3)
        at TailRecursionTest.loop(TailRecursionTest.java:3)
        at TailRecursionTest.loop(TailRecursionTest.java:3)
        at TailRecursionTest.loop(TailRecursionTest.java:3)
        at TailRecursionTest.loop(TailRecursionTest.java:3)
        at TailRecursionTest.loop(TailRecursionTest.java:3)
        at TailRecursionTest.loop(TailRecursionTest.java:3)
        at TailRecursionTest.loop(TailRecursionTest.java:3)
        at TailRecursionTest.loop(TailRecursionTest.java:3)
        at TailRecursionTest.loop(TailRecursionTest.java:3)
        at TailRecursionTest.loop(TailRecursionTest.java:3)
        at TailRecursionTest.loop(TailRecursionTest.java:3)
        at TailRecursionTest.loop(TailRecursionTest.java:3)
        at TailRecursionTest.loop(TailRecursionTest.java:3)
        at TailRecursionTest.loop(TailRecursionTest.java:3)
        at TailRecursionTest.loop(TailRecursionTest.java:3)
        at TailRecursionTest.loop(TailRecursionTest.java:3)
        at TailRecursionTest.loop(TailRecursionTest.java:3)
        at TailRecursionTest.loop(TailRecursionTest.java:3)
        at TailRecursionTest.loop(TailRecursionTest.java:3)
        at TailRecursionTest.loop(TailRecursionTest.java:3)
        at TailRecursionTest.loop(TailRecursionTest.java:3)
        at TailRecursionTest.loop(TailRecursionTest.java:3)
        at TailRecursionTest.loop(TailRecursionTest.java:3)
        at TailRecursionTest.loop(TailRecursionTest.java:3)
        at TailRecursionTest.loop(TailRecursionTest.java:3)
        at TailRecursionTest.loop(TailRecursionTest.java:3)
        at TailRecursionTest.loop(TailRecursionTest.java:3)
        at TailRecursionTest.loop(TailRecursionTest.java:3)
        at TailRecursionTest.loop(TailRecursionTest.java:3)
        at TailRecursionTest.loop(TailRecursionTest.java:3)
        at TailRecursionTest.loop(TailRecursionTest.java:3)
        at TailRecursionTest.loop(TailRecursionTest.java:3)
        ...

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List