On 11/20/2012 1:13 PM, Tim Margheim wrote:
From my basic knowledge of the structure, it seems that a prefix-search is simply a First where you quit early if it turns out you would have to go up a level.  So that might be a simple matter of leaving out some code that the normal JudySLFirst() requires.

I have a follow-up question about this.  I just peeked at the source for JudySLFirst(), and it turns out that it works by calling JudySLGet(), then calling JudySLNext() if it failed.  Doesn't that involve a slight duplication of work?  Doesn't it traverse to Index's branch once during JudySLGet() to discover that there is no corresponding value, and then a second time at the beginning of the JudySLNext()?

Could you get a slight improvement by making a private version of JudySLGet() that returns the location of Index's branch for subsequent use in seeding the call to JudySLNext()? Or does all this happen in the cache quickly enough not to make a difference?


Tim