**Reporter:** What is a tree?

**Layman:** A tree is a perennial woody plant growing on the ground that has a main stem, many branches from the stem and leaves.

**Reporter:** What is a tree?

**Mathematician:** A tree is a connected undirected acyclic graph.

**Reporter:** What is a tree?

**Computer Engineer:** A tree is a data structure used to organize the data (numbers, strings etc) in a tree format so as to make the data insertion or deletion or search faster.

Yes. This post is not about the trees of Nature, but, about the trees of Computer Science. I would like to give a comprehensive list of different concepts of trees, different types of trees and different applications of trees.

**Applications of Trees**

Trees are one of the most useful data structures in Computer Science. Some of the common applications of trees are:

- The library database in a library, a student database in a school or college, an employee database in a company, a patient database in a hospital or any database for that matter would be implemented using trees.
- The file system in your computer i.e folders and all files, would be stored as a tree.
- When you search for a word in a file or misspell a word and you get a list of possible correct words, you are using a tree. Because, the file would be indexed as a tree and for the same reason you get answers instantly.
- When you watch a youtube video or surf anything on the internet, the data which would be present in a computer somewhere in the world would travel to your computer passing through many intermediate computers called routers. The routers heavily use trees for routing.
- Most probably, Google maps uses trees (apart from using graphs) for all the locations in it. Then it would be very easy to answer questions like

a) which is the nearest restaurant to this place?

b) list all schools which are present within 5 miles of radius from this place

c) and so on

**Types of Trees**

People come up with different concepts and different types of trees so that they can be made use for a variety of applications. If you are not a technical person, I recommend you to know at least one tree (say binary search trees). If you are a technical person but not a Computer Science person, I recommend you to know at least three trees (say binary search trees, B trees and suffix trees). If you are a Computer Science person, I recommend you to know all known trees.

- 2-3 heap
- 2-3 trees
- 2-3-4 trees
- (a-b) trees
- AA trees
- Abstract syntax trees
- Adaptive k-d trees
- Additive trees
- And-or trees
- AVL trees
- Alternating decision trees
- B trees
- B+ trees
- B* trees
- B# trees
- bb-a trees
- Balanced trees
- Banana trees
- Beap
- Binary heap
- Binary search trees
- Binary trees
- Binomial heap
- BK trees
- BSP trees
- Buffer trees
- Buffered repository trees
- Bx trees
- Cartesian trees
- Caterpillar
- Cayley trees
- Centipede
- Claw graph
- Cover trees
- Ctrie
- Dancing trees
- D-ary heap
- Decision trees
- Enfilade
- Expectiminimax trees
- Exponential trees
- Fenwick trees
- Fibonacci heap
- Finger trees
- Fractal trees
- Fusion trees
- Gomory Hu trees
- Hash / merkle trees
- Heap
- Hilbert R trees
- Implicit k-d trees
- Interval trees
- K trees
- K+ trees
- k-ary trees
- K-d trees
- Kdb tres
- Leftlist heap
- Linear octrees
- Link / cut trees
- Lobster
- M trees
- Metric trees
- Min / max k-d trees
- Minimax trees
- Minimum spanning trees
- Octrees
- Pagoda
- Pairing heap
- Parse trees
- Prefix trees / tries
- Prefix hash trees
- Phylogenetic /evolutionary trees
- Qd trees
- Quadtrees
- Queap
- R trees
- R+ trees
- R* trees
- Range trees
- Radix trees
- Randomized binary search trees
- Rapidly exploring random trees
- Red black trees
- Rope
- Scapegoat trees
- Segment trees
- Self balancing binary search trees
- SKD trees
- Skew heap
- Soft heap
- Spaghetti stack / in-tree
- Spider
- Splay trees
- SPQR trees
- Star graph
- Steiner trees
- Succinct suffix trees
- Suffix trees
- Syntax trees
- T trees
- Tango trees
- Ternary heap
- Ternary search trees
- Thin heap
- Threaded binary trees
- Top trees
- Treap
- TV trees
- UB trees
- Ultrametric trees
- Van Emde Boas trees
- VP trees
- Weight balanced B trees
- Weight balanced trees
- Weighted binary trees
- X trees
- X-fast trie
- Y trees
- Y-fast trees
- Y-fast trie

Enjoy. :)