CS: trees, binary trees and tries
Note: Most of this information was gained from a basic Google search and is presented here for the sake of distilling some basic concepts of computer science into an easily understandable form. This post concerns Tree data structures.
tree/shameless Laruelle plug:[^1]
Trees
A tree is a data structure that consists of a parent or root node which stores a data element and which possesses at least one child or branch. These child nodes in turn possess their own values and may have their own children (note: all nodes have 1 parent except for the root node which has 0).
Trees are particularly useful for storing heirarchically arranged data. They are also very human readable since their visual organization resembles that of an actual tree. Further, for a relatively complex data structure (relative to a stack or queue) they can be traversed or "walked" through relatively quickly, although this is highly dependent on their depth. Further, in the case of natural language processing, a large corpus of text can be stored as a tree which significantly reduces the query time required to find a sequence of words (as is the case with n-grams) and the memory requirements for its storage.
Since this terminology can become somewhat complex I've provided a list of terms (note: I originally found these terms in a university lecture powerpoint but I have not been able to find them again, so I apologize for the lack of attribution). Tree terminology:Practically, trees are implemented via recursion (where the function that creates the branch is called within the function itself) and a conditional sorting method.
Two types of trees
There are a variety of tree types, however, here we will address two simple types: the binary tree, which accordingly is a tree with a left and right branch, and a trie, which unhappily is far more complex (note: evidently the word "trie" comes from the word "retrieval" it can be pronounced either "try" or "tree" but definitively does not have a relationship with the word "tri" as in "tricycle"). For our purposes we will focus on tries for the rest of the article (although binary trees are certainly varied and complicated in their own right).

Tries
What is immediately distinguishing about a trie vs. a binary tree is that values are not stored at nodes but are rather indicated by the nodes position in the tree: "Unlike a binary search tree, no node in the tree stores the key associated with that node; instead, its position in the tree defines the key with which it is associated. All the descendants of a node have a common prefix of the string associated with that node, and the root is associated with the empty string. Values are normally not associated with every node, only with leaves and some inner nodes that correspond to keys of interest."[^2] Common applications for tries are for autocompletion or for storing predictive text.
More on this later (with code snippets and more!)