jgit/org.eclipse.jgit.test
Matthias Sohn 70b436b1b2 Add TernarySearchTree
A ternary search tree is a type of tree where nodes are arranged in a
manner similar to a binary search tree, but with up to three children
rather than the binary tree's limit of two.

Each node of a ternary search tree stores a single character, a
reference to a value object and references to its three children named
equal kid, lo kid and hi kid. The lo kid pointer must point to a node
whose character value is less than the current node. The hi kid pointer
must point to a node whose character is greater than the current
node.[1] The equal kid points to the next character in the word. Each
node in a ternary search tree represents a prefix of the stored strings.
All strings in the middle subtree of a node start with that prefix.

Like other prefix trees, a ternary search tree can be used as an
associative map with the ability for incremental string search. Ternary
search trees are more space efficient compared to standard prefix trees,
at the cost of speed.

They allow efficient prefix search which is important to implement
searching refs by prefix in a RefDatabase.

Searching by prefix returns all keys if the prefix is an empty string.

Bug: 576165
Change-Id: If160df70151a8e1c1bd6716ee4968e4c45b2c7ac
2023-01-04 23:51:23 +01:00
..
.settings Merge branch 'stable-5.5' into stable-5.6 2021-12-04 18:06:32 +01:00
META-INF Add TernarySearchTree 2023-01-04 23:51:23 +01:00
exttst/org/eclipse/jgit Add a cgit interoperability test for LockFile 2021-05-09 22:49:19 +02:00
findBugs [spotbugs] Silence CN_IMPLEMENTS_CLONE_BUT_NOT_CLONEABLE in jgit tests 2020-12-22 10:53:00 +01:00
src/org/eclipse/jgit Decouple JSch from JGit Core 2020-06-01 01:46:59 +02:00
tst/org/eclipse/jgit Add TernarySearchTree 2023-01-04 23:51:23 +01:00
tst-rsrc PatchApplier: fix handling of last newline in text patch 2022-12-26 11:51:25 +01:00
.classpath Bump minimum required Java version to 11 2021-09-29 17:12:12 +02:00
.gitignore
.project
BUILD Fix BUILD rules for FilteredRenameDetectorTest 2022-08-01 13:31:13 -04:00
build.properties Use slf4j-simple instead of log4j for logging 2021-12-31 01:09:52 +01:00
org.eclipse.jgit.core--All-Tests (Java 11) (de).launch Bump minimum required Java version to 11 2021-09-29 17:12:12 +02:00
org.eclipse.jgit.core--All-Tests (Java 11).launch Bump minimum required Java version to 11 2021-09-29 17:12:12 +02:00
org.eclipse.jgit.core--All-Tests.launch
org.eclipse.jgit.test-WalkEncryptionTest-Proxy.launch
org.eclipse.jgit.test-WalkEncryptionTest.launch
plugin.properties Fix bundle localization of Apache SSH bundle 2019-06-21 17:54:06 +02:00
pom.xml Prepare 6.5.0-SNAPSHOT builds 2022-11-23 19:09:33 +01:00
tests.bzl Use slf4j-simple instead of log4j for logging 2021-12-31 01:09:52 +01:00