Supongo que por “lista” te refieres a una lista vinculada. Tenga en cuenta que una “lista” en casi todos los casos se implementa como una matriz dinámica (Java / C # / Python / etc.todos lo hacen con sus tipos de datos predeterminados “Lista”).
Si es así, una lista vinculada tiene más sentido si sus datos son simplemente un elemento que sigue a otro en lugar de alguna forma de jerarquía o relación específica entre sí. Si solo trabaja en el primer o último elemento de una lista, entonces una lista vinculada tiene más sentido. Muy a menudo, las listas enlazadas se utilizan para implementar estructuras como colas y pilas, un árbol o matriz puede ser engorroso y / o restrictivo para estos. Además, si solo recorre toda la lista de principio a fin, probablemente no necesite poder indexar en una ubicación aleatoria o tenerla en un orden predefinido.
Si desea organizar los elementos de manera que cualquier elemento pueda tener uno o más subelementos, cada uno de los cuales puede tener sus propios subelementos, etc., esto es para qué sirven los árboles (es decir, desea cierta jerarquía de elementos y sus subelementos). Un caso especial son los árboles binarios que tienden a usarse como árboles de búsqueda binaria, que es una forma de tener subelementos ordenados en orden. No siempre tiene o incluso desea un orden ordenado, por lo que puede que no sea necesario.
- ¿Cómo encuentras la distancia entre dos lugares, sin usar los mapas de Google?
- Dado un gráfico de N vértices con m1 bordes unidireccionales y m2 bordes bidireccionales, ¿cómo podemos dirigir los bordes bidireccionales de modo que no tengamos ninguna caminata cerrada?
- ¿Cómo encontrar una ruta con la suma máxima en un BST (no BT)?
- ¿Cuál es la mejor fuente disponible para aprender estructuras de datos y algoritmos para un principiante?
- ¿Cómo se puede usar la máquina épsilon para realizar cálculos precisos de coma flotante?
En general, es menos intensivo en recursos almacenar un nodo en una lista vinculada que en un árbol, se necesitan menos referencias por nodo, especialmente en listas enlazadas. Por lo tanto, podría ayudar a reducir un poco los requisitos de memoria. Aunque lo más eficiente (en cuanto al espacio) sería una matriz en su lugar, no se necesitan referencias.