Three should look like this:
ROOT overflow/ \st OO \ack O \overflow O
Usually you do not need to use hash tables as part of the trie; trie itself is already an efficient index data structure. Of course you can do it.
But in any case, your step (2) should actually go down to trie during the search, and not just request a hash function. This way you can easily find the insertion point and should not look for it later as a separate step.
I believe that step (3) is incorrect, you do not need to rebuild the trie, and in fact you should not do this, because these are only additional fragments of the line that you store in the store; see image above.
source share