Carleton University - School of Computer Science Honours Project
Winter 2020
A Comparison between Splay Trees using Splay and Semi-splay Operations
Nathaniel Mitchell
SCS Honours Project Image
ABSTRACT
The paper Self-Adjusting Binary Search Trees by Daniel Sleator and Robert Tarjan[1] provides an in-depth analysis about a structure called a Splay Tree. This structure has a number of interesting properties, and can be implemented in multiple ways. In particular, the paper lays out multiple proposals for the design of the core operation named ‘splay’. This report will cover the implementation of the two types of splay trees, tools used within the project, and the tests used to verify the performance of the trees. In this project, the two trees are called “Full-splay” and “Semi-splay”. Full-splay trees have more expensive find/insert operations and can destroy well-balanced trees, but react better to changes in access patterns. Semi-splay trees have cheaper find/insert operations, and perform less restructuring, which performs better when you have a tree built on a stable access pattern. In general, it seems that Semi-splay trees tend to perform better, unless you are repeatedly accessing the same nodes over and over again in the short term.