¿Cuál es su estructura de datos favorita y por qué?

Otra votación para la tabla hash, que de hecho es la mejor estructura de datos del mundo :

  • Increíblemente útil … O (1) búsquedas, bebé!
  • Fácil de entender y fácil de implementar. No es que alguien deba implementar sus propias tablas hash en estos tiempos, pero es bueno saber que podrías, fácilmente, si fuera necesario. Quiero decir, creo que podría explicar la noción de una tabla hash a un no programador sin demasiados problemas. Intenta hacerlo con un árbol rojo-negro.
  • Algo gracioso. Esto es difícil de expresar, pero divertido en la forma en que las buenas pruebas en matemáticas son algo divertidas. Tienen ese elemento de sorpresa. Es divertido que los primeros pasos de uno con tablas hash sean más o menos así: “De acuerdo, inventa una función hash para foos” ¿Qué es una función hash? “Solo una función loca que toma a un foo como entrada y te da un número como salida”. ¿Qué tipo de número? “No importa. Cualquier tipo de número. Usa muchas operaciones bit a bit o algo así” Ummm, está bien …

Recuerdo hace mucho, mucho tiempo, cuando me describieron por primera vez las tablas hash con la sensación de que una bombilla se encendía en mi cabeza y pensaba: ¿Por qué no pensé en eso?

Mi estructura de datos favorita es la matriz.

-> Estructura de datos simple, versátil, eficiente y más utilizada.

-> Se utiliza en casi todos los programas informáticos y proporciona una forma muy fácil de manipular una colección de elementos similares.

Se pueden implementar estructuras de datos como pilas y colas y estructuras de datos más avanzadas como árboles, gráficos (representación de matriz de adyacencia) e incluso montones utilizando matrices

Me gusta la idea que subyace en la estructura de datos ‘cola con mínimo’. Permite las siguientes operaciones:

  • Agregue un elemento al comienzo de la cola con la complejidad temporal O (1).
  • Elimine un elemento del final de la cola con una complejidad de tiempo promedio O (1).
  • Encuentre elementos mínimos de elementos almacenados en la cola con complejidad de tiempo O (1).

Básicamente, la idea es que podemos simular la cola con dos pilas:

  • Cada vez que recibimos una consulta ‘agregar’, agregamos el elemento en la primera pila.
  • Cada vez que recibimos una consulta ‘eliminar’, eliminamos el elemento superior de la segunda pila. En el caso de que la segunda pila esté vacía, simplemente la rellenamos con todos los elementos de la primera pila (invirtiendo el orden).

De esta manera, para encontrar el elemento mínimo para la cola, todo lo que necesitamos es encontrar elementos mínimos en cada una de las pilas. Esto se puede hacer muy fácilmente: mantenga una pila de mínimos.

Mi estructura de datos favorita es la matriz Suffix.

Principalmente porque solo toma memoria lineal y le permite buscar un patrón [matemática] P [/ matemática] de longitud [matemática] m [/ matemática] en una cadena [matemática] S [/ matemática] en [matemática] O (m ) [/ math] tiempo (independiente del tamaño de la cadena [math] S [/ math]) una vez que se construye.

Bueno, mi estructura de datos favorita es la lista. Porque proporciona iteración indexada y flexible para ampliar y ampliar (la mayoría de las estructuras de datos son flexibles, por supuesto). Pero, si está buscando una recuperación rápida, los mapas son más eficientes en comparación con otros. Esto podría no ser cierto en todos los sentidos.

Tendría que ir con la mesa Hash.
Es mucho más fácil pensar en buscar datos en relaciones desordenadas utilizando valores arbitrarios para la indexación que calzando todo en un esquema de tabulación ordenado artificialmente.

Segmentar árboles. Muy versátil y se puede adaptar a una amplia gama de problemas de concurso basados ​​en consultas. Diversión para implementar, también.

estructuras de datos simples- vectores
estructuras de datos complejas: árbol de búsqueda binaria

Me gustan más las pilas. Tienen funciones que se usan ampliamente en la vida real: PUSH y POP.
PD: Espero que tengas el doble significado.

Mis estructuras de datos favoritas son

Árbol binario y
Tabla de picadillo