Если исходить из ответа @Matt Wilson, использование двумерного массива для хранения чисел будет довольно простым решением. В вашем случае вы бы закодировали треугольник
5
9 6
4 6 8
0 7 1 5
как массив
[5][ ][ ][ ]
[9][6][ ][ ]
[4][6][8][ ]
[0][7][1][5]
Отсюда, узел в позиции (i, j) имеет детей в (i + 1, j) и (i + 1, j + 1) и родителей в позиции (i - 1, j) и (i - 1, j - 1), при условии, что эти индексы действительны.
Преимущество этого подхода состоит в том, что если ваш треугольник имеет высоту N, пространство, требуемое для этого подхода, равно N 2 , что чуть меньше, чем вдвое больше требуемого пространства N (N + 1) / 2. на самом деле хранить элементы. Связанная структура, такая как явный граф, наверняка будет использовать больше памяти.