computer science: a structured programming approach using c1 15-5 trees trees are used extensively...

31
Computer Science: A Structured Programming Approach Using C 1 15-5 Trees Trees are used extensively in computer science Trees are used extensively in computer science to represent algebraic formulas; as an efficient to represent algebraic formulas; as an efficient method for searching large, dynamic lists; and method for searching large, dynamic lists; and for such diverse applications as artificial for such diverse applications as artificial intelligence systems and encoding algorithms. intelligence systems and encoding algorithms. Basic Tree Concepts Terminology Binary Trees Binary Search Trees Binary Tree Example Topics discussed in this section: Topics discussed in this section:

Upload: vincent-harmon

Post on 13-Jan-2016

226 views

Category:

Documents


1 download

TRANSCRIPT

Computer Science: A Structured Programming Approach Using C 1

15-5 Trees

Trees are used extensively in computer science to Trees are used extensively in computer science to represent algebraic formulas; as an efficient method represent algebraic formulas; as an efficient method for searching large, dynamic lists; and for such for searching large, dynamic lists; and for such diverse applications as artificial intelligence systems diverse applications as artificial intelligence systems and encoding algorithms.and encoding algorithms.

Basic Tree ConceptsTerminologyBinary TreesBinary Search TreesBinary Tree Example

Topics discussed in this section:Topics discussed in this section:

Computer Science: A Structured Programming Approach Using C 2

A tree consists of a finite set of elements, called nodes, and a finite set of directed lines, called branches, that

connect the nodes.

NoteNote

Computer Science: A Structured Programming Approach Using C 3

FIGURE 15-30 Tree

Computer Science: A Structured Programming Approach Using C 4

FIGURE 15-31 Tree Nomenclature

Computer Science: A Structured Programming Approach Using C 5

The level of a node is its distance from the root. The height of a tree is the level of the leaf in the longest path

from the root plus 1.

NoteNote

Computer Science: A Structured Programming Approach Using C 6

FIGURE 15-32 Subtrees

Computer Science: A Structured Programming Approach Using C 7

A tree is a set of nodes that either:1. Is empty, or2. Has a designated node, called the root, from which hierarchically descend zero or more subtrees, which are also trees

NoteNote

Computer Science: A Structured Programming Approach Using C 8

FIGURE 15-33 Collection of Binary Trees

Computer Science: A Structured Programming Approach Using C 9

FIGURE 15-34 Binary Tree Data Structure

Computer Science: A Structured Programming Approach Using C 10

FIGURE 15-35 Binary Tree Traversals

Computer Science: A Structured Programming Approach Using C 11

FIGURE 15-36 Binary Tree for Traversals

Computer Science: A Structured Programming Approach Using C 12

In the preorder traversal, the root is processed first,before its subtrees.

NoteNote

Computer Science: A Structured Programming Approach Using C 13

PROGRAM 15-19 Preorder Traversal of a Binary Tree

Computer Science: A Structured Programming Approach Using C 14

FIGURE 15-37 Preorder Traversal—A B C D E F

Computer Science: A Structured Programming Approach Using C 15

FIGURE 15-38 Algorithmic Traversal of Binary Tree

Computer Science: A Structured Programming Approach Using C 16

PROGRAM 15-20 Inorder Traversal of a Binary Tree

Computer Science: A Structured Programming Approach Using C 17

FIGURE 15-39 Inorder Traversal—C B D A E F

Computer Science: A Structured Programming Approach Using C 18

In the inorder traversal, the root is processedbetween its subtrees.

NoteNote

Computer Science: A Structured Programming Approach Using C 19

In a binary search tree, the left subtree contains key values less than the root, and the right subtree contains

key values greater than or equal to the root.

NoteNote

Computer Science: A Structured Programming Approach Using C 20

FIGURE 15-40 Binary Search Tree

Computer Science: A Structured Programming Approach Using C 21

FIGURE 15-41 Valid Binary Search Trees

Computer Science: A Structured Programming Approach Using C 22

FIGURE 15-42 Invalid Binary Search Trees

Computer Science: A Structured Programming Approach Using C 23

All BST insertions take place at a leaf or a leaflike node.

NoteNote

Computer Science: A Structured Programming Approach Using C 24

FIGURE 15-43 BST Insertion

Computer Science: A Structured Programming Approach Using C 25

PROGRAM 15-21 Binary Tree Insert Function

Computer Science: A Structured Programming Approach Using C 26

PROGRAM 15-21 Binary Tree Insert Function

Computer Science: A Structured Programming Approach Using C 27

FIGURE 15-44 Binary Tree Example

Computer Science: A Structured Programming Approach Using C 28

PROGRAM 15-22 Binary Tree Example

Computer Science: A Structured Programming Approach Using C 29

PROGRAM 15-22 Binary Tree Example

Computer Science: A Structured Programming Approach Using C 30

PROGRAM 15-22 Binary Tree Example

Computer Science: A Structured Programming Approach Using C 31

PROGRAM 15-22 Binary Tree Example