LearnViz CompSci
Home / Learn / Data Structures / Suffix Trees

Advanced Topic 38 of 52 Data Structures

Suffix Trees

Compressed trie of all suffixes enabling fast substring queries.

How it works

A suffix tree is a compressed trie of every suffix of a string, with edges labeled by substrings, so any substring of the text corresponds to a path from the root. It can be built in linear time with Ukkonen's algorithm and answers substring queries in O(m). Many string problems such as longest repeated substring or longest common substring become simple tree traversals.

Where it is used

Bioinformatics, text indexing, data compression, plagiarism detection and pattern matching over large texts use suffix trees.

Common pitfall

The memory footprint is large, often tens of bytes per input character, which is why suffix arrays are preferred in practice. Ukkonen's algorithm is intricate and hard to implement correctly. Without a terminal sentinel, some suffixes end inside edges. Understand suffix links before coding.

Where it fits in the course

Suffix Trees is topic 38 of 52 in Data Structures, rated Advanced. It follows Suffix Arrays. The next topic is Interval Trees.

Practice and explore

How to study this topic

  1. Read the explanation above and restate the definition in your own words.
  2. Open the interactive lesson and answer its mini quiz.
  3. Read the common pitfall, then write a short example that avoids it.
  4. Check your understanding in the Data Structures quiz, and revisit the topic if you miss a question.

Frequently asked questions

What is Suffix Trees?
Compressed trie of all suffixes enabling fast substring queries. It belongs to Data Structures and is an advanced-level topic.
Where do people use Suffix Trees?
Bioinformatics, text indexing, data compression, plagiarism detection and pattern matching over large texts use suffix trees.
What is the most common mistake with Suffix Trees?
The memory footprint is large, often tens of bytes per input character, which is why suffix arrays are preferred in practice.
What should I learn before this topic?
Start with Suffix Arrays, the topic just before it in Data Structures.
How can I practice it?
Answer the mini quiz in the interactive lesson, then take the Data Structures quiz. You can also explore Binary Search Tree in the Visual Lab.
Is Suffix Trees hard to learn?
It is an Advanced topic. Expect to read the explanation more than once and to connect it with earlier topics. Working through a small example by hand helps most.
How long does it take to learn Suffix Trees?
Most learners can read the explanation and finish the interactive lesson in under an hour. Fluency comes from applying the idea, so plan a few short practice sessions with the quiz.
Which topics are related to Suffix Trees?
Suffix Arrays, Interval Trees, Sparse Tables are closely connected. The full list is in the related topics section of this page.
What should I study after Suffix Trees?
Continue with Interval Trees, the next topic in Data Structures.

Related topics