@Override
	public void inorder(TaskMonitor monitor, Op<T> op) throws CancelledException {
		Stack<ByteTrieNode<T>> parentStack = new Stack<ByteTrieNode<T>>();
		parentStack.push(null);
		ByteTrieNode<T> top = root;
		monitor.initialize(numberOfNodes());
		while (top != null) {
			monitor.checkCancelled();
			monitor.incrementProgress(1);
			op.op(top);
			if (top.children.length == 0) {
				top = parentStack.pop();
			}
			else {
				for (int ii = top.children.length - 1; ii > 0; --ii) {
					parentStack.push(top.children[ii]);
				}
				top = top.children[0];
			}
		}
	}
Visits all the nodes in the trie such that the visitation order is properly
ordered (even though the actual algorithm below is a PREORDER traversal).
The client is responsible for not performing actions on non-terminal nodes
as necessary.
@param monitor a task monitor
@param op the operation to perform
@throws CancelledException if the user cancels
Ghidra/Features/Base/src/main/java/ghidra/util/search/trie/ByteTrie.java