.. This file is part of the OpenDSA eTextbook project. See
.. http://opendsa.org for more details.
.. Copyright (c) 2012-2020 by the OpenDSA Project Contributors, and
.. distributed under an MIT open source license.

.. avmetadata::
   :nocatalog:
   :author: Cliff Shaffer
   :institution: Virginia Tech
   :satisfies: binary tree intro
   :topic: Binary Trees
   :keyword: Binary Trees
   :naturallanguage: en
   :programminglanguage: N/A
   :description: Introductory module for a chapter on binary trees for a Data Structures and Algorithms course.


Binary Trees Chapter Introduction
=================================

:term:`Tree <tree>` structures enable efficient access and efficient
update to large collections of data.
:term:`Binary trees <binary tree>` in particular are widely used and
relatively easy to implement.
But binary trees are useful for many things besides searching.
Just a few examples of applications that trees can speed up include
:ref:`prioritizing jobs <priority queue> <Heaps>`,
:ref:`describing mathematical expressions <expression tree> <BinaryTreeImpl>`
and the syntactic elements of computer programs,
or organizing the information needed to drive
:ref:`data compression algorithms <Huffman codes> <Huffman>`.

This chapter covers terminology used for discussing binary trees,
:term:`tree traversals <tree traversal>`, approaches to implementing
tree :term:`nodes <node>`, and various examples of binary trees.


