Applications of tree data structure


Why Tree?
Unlike Array and Linked List, which are linear data structures, tree is hierarchical (or non-linear) data structure.

  1. One reason to use trees might be because you want to store information that naturally forms a hierarchy. For example, the file system on a computer:

    file system
    ———–

         /   <-- root
      /      \
    ...        home
          /          \
       ugrad        course
        /          /    |    \
      ...        cs101 cs112 cs113
    
  2. If we organize keys in form of a tree (with some ordering e.g., BST), we can search for a given key in moderate time (quicker than Linked List and slower than arrays). Self-balancing search trees like AVL and Red-Black trees guarantee an upper bound of O(Logn) for search.
  3. We can insert/delete keys in moderate time (quicker than Arrays and slower than Unordered Linked Lists). Self-balancing search trees like AVL and Red-Black trees guarantee an upper bound of O(Logn) for insertion/deletion.
  4. Like Linked Lists and unlike Arrays, Pointer implementation of trees don’t have an upper limit on number of nodes as nodes are linked using pointers.

Other Applications :



  1. Store hierarchical data, like folder structure, organization structure, XML/HTML data.
  2. Binary Search Tree is a tree that allows fast search, insert, delete on a sorted data. It also allows finding closest item
  3. Heap is a tree data structure which is implemented using arrays and used to implement priority queues.
  4. B-Tree and B+ Tree : They are used to implement indexing in databases.
  5. Syntax Tree: Used in Compilers.
  6. K-D Tree: A space partitioning tree used to organize points in K dimensional space.
  7. Trie : Used to implement dictionaries with prefix lookup.
  8. Suffix Tree : For quick pattern searching in a fixed text.
  9. Spanning Trees and shortest path trees are used in routers and bridges respectively in computer networks
  10. As a workflow for compositing digital images for visual effects.

References:
http://www.cs.bu.edu/teaching/c/tree/binary/
http://en.wikipedia.org/wiki/Tree_%28data_structure%29#Common_uses

Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.



My Personal Notes arrow_drop_up


Article Tags :
Practice Tags :


11


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.