Cómo referirse a los niños en un árbol con millones de nodos

Estoy intentando construir un árbol, donde cada nodo puede tener una cantidad no especificada de nodos hijos. El árbol debe tener más de un millón de nodos en la práctica.

He logrado construir el árbol, sin embargo, estoy experimentando errores de memoria debido a un montón completo cuando lleno el árbol con unos pocos miles de nodos. La razón de esto es porque estoy tratando de almacenar los hijos de cada nodo en una estructura de datos de Diccionario (o cualquier estructura de datos para el caso). Por lo tanto, en tiempo de ejecución tengo miles de estructuras de datos creadas, ya que cada nodo puede tener una cantidad no especificada de elementos secundarios, y los elementos secundarios de cada nodo deben almacenarse en esta estructura de datos.

¿Hay otra manera de hacer esto? No puedo simplemente usar una variable para almacenar una referencia de los hijos, ya que puede haber una cantidad no especificada de hijos para cada nodo. Por lo tanto, no es como un árbol binario donde podría tener 2 variables haciendo un seguimiento del niño izquierdo y el niño derecho respectivamente.

Por favor, no hay sugerencias para otro método de hacer esto. Tengo mis razones para necesitar crear este árbol, y desafortunadamente no puedo hacer otra cosa.

¡Gracias