¿De qué se trata la estructura de datos?
Pregunta 1: ¿De qué habla la estructura de datos? Las estructuras de datos son la forma en que las computadoras almacenan y organizan datos. Una estructura de datos se refiere a una colección de elementos de datos que tienen una o más relaciones específicas entre sí. A menudo, las estructuras de datos cuidadosamente seleccionadas pueden conducir a una mayor eficiencia operativa o de almacenamiento. Las estructuras de datos suelen estar relacionadas con algoritmos de recuperación y técnicas de indexación eficientes.
1. Tabla lineal
(1) Definición y operaciones básicas de tabla lineal
(2) Implementación de tabla lineal
1 Estructura de almacenamiento secuencial
2. Estructura de almacenamiento en cadena
3. Aplicación de tabla lineal
2. Pila, cola y matriz
(1) Conceptos básicos de pilas y colas
(2) Estructuras de almacenamiento secuencial de pilas y colas
(3) Estructuras de almacenamiento encadenado de pilas y colas
(4) Aplicaciones de pilas y colas
(5) Almacenamiento comprimido de matrices especiales
3. Árboles y árboles binarios
(1) Concepto de árboles
(2) Árbol binario
1. La definición y las principales características del árbol binario
2. La estructura de almacenamiento secuencial y la estructura de almacenamiento en cadena del árbol binario
p>
3. Recorrido de árbol binario
4. Conceptos básicos y construcción de árboles binarios de pistas
5. Árbol de clasificación binaria
6. Binario equilibrado tree
p>(3) Árboles y bosques
1. Estructura de almacenamiento de libros
2. Conversión entre bosques y árboles binarios
3. Recorrido de árboles y bosques
(4) Aplicación de árboles
1. Problema de clases de equivalencia
2. Árbol de Huffman y codificación de Huffman
4. Gráficos
(1) Concepto de gráficos
(2) Almacenamiento y operaciones básicas de gráficos
1. Método de matriz de adyacencia
2. Método de lista de adyacencia
(3) Recorrido de gráficos
1. Búsqueda en profundidad
2. Búsqueda en amplitud
(4) Aplicaciones básicas de gráficos y su análisis de complejidad
1. Árbol de expansión mínimo (coste)
2. Camino más corto
3. Clasificación topológica
4. Ruta crítica
5. Búsqueda
(1) Conceptos básicos de búsqueda
(2) Método de búsqueda secuencial
(3) Método de búsqueda media
(4) Árbol B
(5) Tabla hash y su búsqueda
p>(6) Análisis y aplicación del algoritmo de búsqueda
6. Clasificación interna
(1) Concepto básico de clasificación
(2) Clasificación por inserción
1. Ordenación por inserción directa
2. Ordenación por media inserción
(3) Ordenación por burbuja (ordenación por burbuja)
(4 ) Ordenación por selección simple
(5) Clasificación Hill (clasificación shell)
(6) Clasificación rápida
(7) Clasificación montón
(8) Dos -way merge sort (merge sort)
(9) Clasificación Radix
(10) Comparación de varios algoritmos de clasificación interna
(11) Aplicación de clasificación interna algoritmo
Pregunta 2: ¿De qué se trata la estructura de datos? Creo que también conoces el dicho: programa de computadora = estructura de datos del algoritmo. La estructura de datos trata sobre cómo organizar y almacenar lotes de datos en programas de computadora y por qué se organizan de esta manera.
El mismo lote de datos, diferentes métodos de organización (diferentes estructuras de datos) tienen diferentes ventajas y desventajas, algunos son buenos para buscar (hash), otros son buenos para ordenar (árbol) y otros son buenos para insertar y eliminar (vinculados a nodos); lista). En profundidad, también existe la complejidad temporal y espacial de la búsqueda, clasificación y otras operaciones en diferentes métodos organizativos.
Pregunta 3: ¿Qué significa estructura de datos? Espero que sea más sencillo. Las estructuras de datos son la forma en que las computadoras almacenan y organizan datos. Una estructura de datos se refiere a una colección de elementos de datos que tienen una o más relaciones específicas entre sí. A menudo, las estructuras de datos cuidadosamente seleccionadas pueden conducir a una mayor eficiencia operativa o de almacenamiento. Las estructuras de datos suelen estar relacionadas con algoritmos de recuperación y técnicas de indexación eficientes. bjl.website
Pregunta 4: ¿Qué es una estructura de datos? 30 puntos Las estructuras de datos son la forma en que las computadoras almacenan y organizan datos. Una estructura de datos se refiere a una colección de elementos de datos que tienen una o más relaciones específicas entre sí. A menudo, las estructuras de datos cuidadosamente seleccionadas pueden conducir a una mayor eficiencia operativa o de almacenamiento. Las estructuras de datos suelen estar relacionadas con algoritmos de recuperación y técnicas de indexación eficientes.
No existe una definición estándar de estructura de datos en la comunidad informática. Los individuos tienen diferentes expresiones según sus diferentes comprensiones:
Sartaj Sahni dijo en su libro "Estructuras de datos, algoritmos y aplicaciones": "Las estructuras de datos son objetos de datos, y la existencia de tales instancias de objetos combina varias relaciones entre los elementos de datos que forman la instancia. Estas relaciones se pueden dar definiendo funciones relacionadas "Define un objeto de datos como "un objeto de datos es una instancia o valor".
La definición de Clifford A. Shaffer en el libro "Estructura de datos y análisis de algoritmos" es: "La estructura de datos es la implementación física de ADT (tipo de datos abstractos)".
Pregunta 5: ¿Qué es el estudio de la estructura de datos y su relación con los algoritmos? Soy una persona obsesionada con los datos. En el camino de las computadoras, también estoy obsesionado con las estructuras de datos cuando estoy desarrollando con mis compañeros. En la universidad, déjame contarte mi comprensión personal: en primer lugar, la estructura de datos es un tema básico de la lingüística informática y no pertenece a ningún lenguaje. Encarna las ideas algorítmicas de casi todos los lenguajes estándar. Los conceptos anteriores son un poco vagos. Hablemos de ello en detalle ahora. Creo que su estructura de datos se explica en un lenguaje específico, como el lenguaje C/C, para ayudar a aprender la estructura de datos. No pertenece a ningún idioma (creo que si escribes el programa del libro en la computadora, no pasará. Solo describe el proceso. Para depurar el programa, necesitas modificar y agregar algunas cosas). Su libro debe comenzar centrándose en conceptos como la estructura de almacenamiento físico/estructura de almacenamiento lógico de los datos, explicando que la estructura de datos es ante todo la "estructura de los datos" y el método de almacenamiento en la memoria es la estructura de almacenamiento físico. En la mente del usuario del programa, es lógico. Por ejemplo: aprendió sobre las listas vinculadas en C/C, entonces, ¿cuál es el concepto de listas vinculadas? Utiliza punteros para establecer la primera dirección del siguiente nodo y dejarlas. conectarse en serie para formar nodos uno tras otro, como mostrar el tren en vida. Y esto es sólo un concepto para programadores, pero ¿cuál es la forma de almacenarlo en la memoria? Esto es "transparente" para usted, el programador. El espacio de asignación interna es aleatorio y no hay líneas en la memoria para conectarlos uno tras otro. Por lo tanto, esta es una relación física y lógica para nosotros, los programadores. Sólo necesitamos conocerlos, y lo que principalmente queremos estudiar es la "estructura lógica". Puedo darte un concepto que yo mismo resumí: todos los algoritmos deben sobrevivir en base a estructuras de datos.
En otras palabras, cuando escribimos cualquier algoritmo, debemos confiar en una estructura de datos existente para operarlo. La estructura de datos se convierte en el objeto operativo del algoritmo. Es por eso que los conceptos de algoritmos y estructuras de datos no están separados. estructura de datos, la existencia no tiene sentido; y una estructura de datos sin algoritmo equivale a un cadáver sin alma; Se estima que esto puede resultar un poco confuso para los principiantes en algoritmos. Hablemos de algo en detalle: cuál es la estructura de datos más simple que tenemos: personalmente refino la tabla lineal en el libro (aquí está para facilitar la comprensión). this): un solo elemento, como: int i; este i es una estructura de datos, qué tipo de estructura de datos es, es una variable de tipo int, podemos sumar/restar/multiplicar/dividir/ Una serie de operaciones como la autoadición, etc., por supuesto, no tiene sentido para nosotros estudiar la estructura de datos y el algoritmo de un solo elemento, porque es inherentemente atómico y puede haber diferencias relativamente pequeñas en el algoritmo para algunas operaciones específicas; y para actualizarlo a un nivel superior: es nuestra lista lineal (que generalmente incluye: lista secuencial/lista vinculada). Entonces, cuando estudiamos estas dos estructuras de datos, ¿qué es lo que debemos estudiar principalmente? En general, estudiamos principalmente sus cuatro operaciones de agregar/eliminar/modificar/recuperar (consultar) en unidades de estructuras (nodos) (por qué existen tales operaciones, lo explicaré a continuación), generalmente ponemos "agregar/eliminar/". "Modificación" se llama actualización. Para un nodo, si queremos realizar una operación de actualización como eliminación, para una tabla de secuencia, usamos el método de acceso de subíndice. Luego, debemos eliminar un elemento después de eliminarlo. Todos los elementos después de todo. Después de todo, los elementos avanzan. Este tiempo es para que cuanto más larga sea la lista de secuencia, más tiempo llevará. Para las listas vinculadas, no existe el concepto de orden. Para eliminar un elemento, solo necesita apuntar el puntero del nodo anterior. El siguiente nodo del punto eliminado utiliza la función free() para liberar el espacio y restaurarlo en el sistema operativo. Al realizar una operación de recuperación, dado que la tabla de secuencia usa directamente subíndices para el acceso aleatorio y es necesario acceder a la lista vinculada desde el principio para hacer coincidir uno por uno para obtener los elementos utilizados, este tiempo también es proporcional al número de nodos en la lista enlazada. Por lo tanto, cada una de nuestras estructuras de datos tendrá diferentes efectos en diferentes algoritmos. Cada uno de ellos no es absolutamente bueno ni absolutamente malo. Todos tienen sus propios valores y métodos de aplicación, por lo que podemos usarlos en el desarrollo de proyectos reales. con respecto al tiempo y espacio del algoritmo interno, así como a las capacidades de hardware que el proyecto puede proporcionar...gt;gt;
Pregunta 6: ¿Quién conoce bien la estructura de datos?
Usando los cursos abiertos de NetEase, puedes ver los de Stanford y el MIT, cuál supera a los nacionales al instante.
Podrás verlo a través del WIFI de tu teléfono móvil o de tu ordenador.
Si mi respuesta no te ayuda, por favor sigue preguntando.
Pregunta 7: Según usted, ¿qué es una estructura de datos? Algoritmo de estructura de datos = la estructura de datos del programa se refiere a la forma de organización de los datos en la memoria (o disco) de la computadora.
la llamada forma organizativa se refiere a la
{
estructura lógica de los datos: la relación de adyacencia entre los datos, como lineal, árbol y gráfico
almacenamiento; estructura: datos Cómo almacenar, como secuencial o en cadena
}
Ejemplo: algoritmo para ordenar las puntuaciones de 10 personas
{
Primero, ingrese la información y las puntuaciones de 10 personas en la computadora
Luego ordénelas
Finalmente, genere los resultados
}El primer paso es para almacenar la información Hay dos preguntas clave a considerar: ¿Cómo almacenar la información de 10 personas (estructura de almacenamiento) y cuál es la relación entre cada persona después del almacenamiento? (Estructura lógica)
Es decir, se requiere especificar la forma de organización de los datos en la computadora. Este es un problema de estructura de datos. Obviamente si solo hay estos 10 datos, elegiremos. estructura de datos de matriz para organización.
Hablemos primero de varias estructuras de datos comunes: lista vinculada de matriz, pila de árbol binario, tabla hash y otras estructuras de datos se ubican a través de su estructura lógica y estructura de almacenamiento, las cuales También son las partes centrales de cada estructura de datos. Como una matriz unidimensional
Estructura lógica: lineal
Estructura de almacenamiento: secuencial
La lista enlazada única es lineal y la cola enlazada es lineal y secuencial. problema
Luego piense en cómo ordenar
Primero trate el mismo tipo de problema (aquí, ordenar si la estructura de datos es diferente, el algoritmo también es diferente). La misma clasificación se divide en clasificación de montón y clasificación de matriz.
Por lo tanto, al considerar el algoritmo, se debe prestar atención a la estructura de datos.
Al diseñar programas, la selección y coincidencia de algoritmos y estructuras de datos deben considerarse de manera integral para diseñar el programa más adecuado.
Por lo tanto, la programación se puede dividir en dos pasos
{
1. Seleccionar la estructura de datos
2. Diseñar el algoritmo en función de la estructura de datos seleccionada
}
Entonces un programa es La construcción fue exitosa.
Original
Pregunta 8: ¿Cómo aprender mejor la estructura de datos? Escribir código de estructura de datos y programar antes de aprender el lenguaje C es la experiencia de la mayoría de los principiantes. De hecho, existen formas de evitarlo.
Piensa más gt; lee más gt; escribe más gt; usa más el teclado
Es importante desarrollar buenos hábitos de programación.
Antes de realizar cualquier trabajo, debe ordenar sus ideas con claridad, consultar la experiencia laboral relevante de otros, analizar sus propias necesidades y poner sus ideas en papel. Primero, utilice la programación de arriba hacia abajo. tu Las funciones de cada función, la entrada y salida, describen claramente el proceso de ejecución interna de cada función y deben estar bien comentadas. Finalmente, codifíquelo paso a paso.
Esto puede evitar eficazmente la mayoría de los errores. Incluso si ocurre un error, es fácil localizar el problema.