Se eu armazenar uma árvore binária em uma matriz, como evito o espaço desperdiçad

uitas vezes precisamos de árvores em algoritmos e eu saio de uma árvore com muitos ponteiros e recursã
s vezes, preciso de mais velocidade e coloco a árvore em uma matriz 2D da seguinte form

Example of a binary tree stored in an array
+-----------------+
|0eeeeeeeeeeeeeeee| //no pointers needed, parent/child, is y dimension,
|11       dddddddd| //sibbling is x dimension of the array.
|2222         cccc|  //The 123 tree is stored root up.
|33333333       bb|  //Notice how the abc-tree is stored upside down 
|4444444444444444a|  //The wasted space in the middle, is offset by the fact 
+-----------------+  //that you do not need up, down, and sibbling pointers.

Eu amo essa estrutura porque ela permite acelerar as opções que não tenho ao usar ponteiros e recursã

Mas note que desperdiçou espaço no meio ....

Como me livrar / reutilizar esse espaço desperdiçado?

Requisitos
Eu só uso essa estrutura se precisar de todo o máximo de velocidade, portanto, uma solução com muitas traduções e cálculos de endereço para chegar a esse espaço não será úti

questionAnswers(1)

yourAnswerToTheQuestion