#!/usr/bin/perl # bst.pl - Don Yang (uguu.org) # Benchmark / correctness test for bst.c # # 03/10/04 use strict; my ($line, $op, $key, $value, %data); %data = (); while( $line = ) { $line =~ /^(\d+) (\d+) (\d+)/; ($op, $key, $value) = ($1, $2, $3); last if $op == 0; if( $op == 1 ) { print "insert $key, $value\n"; $data{$key} = $value; } elsif( $op == 2 ) { print "delete $key\n"; delete $data{$key}; } elsif( $op == 3 ) { print "dump\n"; print "\t$_ -> $data{$_}\n" foreach (sort {$a <=> $b} keys %data); } else { if( exists $data{$key} ) { print "find $key -> $data{$key}\n"; } else { print "find $key -> -1\n"; } } }