Eu faço Análise de Sistemas na UFPR, e achei sua explicação excelente e muito fácil de utilizar.
Acrescentaria apenas que, como existem muitas linguagens de programação e cada uma implementa certas lógicas matemáticas de forma específica, é sempre interessante verificar a documentação da linguagem que se está utilizando para cada estrutura de dados, pois a depender da linguagem já tive surpresas quando realizei benchmarks!