Overview

Published

2023-08-06

This week we’ll introduce some interesting and useful trees:

Binary search trees allow us to find values stored within a tree structure. However, given certain values and orders of operations, binary search trees can develop an undesirable, unbalanced structure. AVL trees and splay trees are designed as a remedy. These are self-balancing binary trees, though they accomplish the goal of self-balancing by different means. B-tree is a design that is useful when we want a broad, shallow tree. This comes in handy when we’re storing data on disk and each operation is expensive.

Learning Objectives

By the end of this module, you will be able to:

  • explain what it means for a tree to be balanced or unbalanced, what that means in terms of search performance,
  • understand how self-balancing works in the context of AVL and splay trees,
  • understand how shallow tree structures like B-tree, improve performance when we need to make access to slower media such as disk.

To achieve this module’s objectives, complete the following:

Read: Essential Algorithms: Chapter 11 - Balanced Trees.

Read / view the following content and complete any comprehension checks:

  • Binary search trees
  • AVL trees
  • Splay trees
  • B-trees

Project

TODO

Original author: Clayton Cafiero < [given name] DOT [surname] AT uvm DOT edu >

No generative AI was used in producing this material. This was written the old-fashioned way.

All materials copyright © 2020–2023, The University of Vermont. All rights reserved.