Упорствуя в своих заблуждениях, я предложу
метаидею. По прежнему делать матрицу, но для нее посмотреть технику разряженных матриц. Таковых много, книжки умные писаны. А если матрица не разряженная, то работая со списками больше памяти проиграешь (на накладные расходы), чем выиграешь.