Red de conocimiento informático - Aprendizaje de código fuente - ¿Cuáles son las estructuras de datos?

¿Cuáles son las estructuras de datos?

Pregunta 1: ¿Cuáles son las principales operaciones de la estructura de datos? (1) Crear una estructura de datos

(2) Eliminar (destruir) la estructura de datos

(3) Eliminar datos de la estructura de datos; Elemento;

(4) Insertar elementos de datos en la estructura de datos;

(5) Acceder a la estructura de datos

(6) Insertar datos en los datos; elemento de estructura.

(5) Acceder a la estructura de datos

(6) Modificar la estructura de datos

(7) Ordenar la estructura de datos

( 8) Buscar estructuras de datos.

Pregunta 2: ¿Cuáles son las estructuras de datos comunes? La relación entre elementos de datos se llama estructura. Hay cuatro tipos básicos de estructuras: ***, estructura lineal, estructura de árbol, estructura gráfica;

estructura ***: salvo que pertenece a un tipo, no existe otra relación

Estructura lineal: existe una correspondencia uno a uno entre los tipos comunes que incluyen: matrices, listas vinculadas, colas y pilas. Las operaciones entre ellos son diferentes. Por ejemplo: una lista vinculada puede insertar o eliminar elementos en cualquier posición, mientras que una cola inserta elementos al final de la cola y elimina elementos al principio de la cola. Una pila solo puede realizar operaciones de inserción y eliminación en la parte superior de la cola. pila.

Estructura de árbol: existe una relación de uno a muchos entre elementos, tipo común: árbol (hay muchos casos especiales: árbol binario, árbol binario equilibrado, árbol de búsqueda, etc.)

Estructura gráfica: elementos Existe una relación de muchos a muchos. El número de nodos predecesores y nodos sucesores de cada nodo en la estructura del gráfico puede ser arbitrario.

Pregunta 3: ¿Cuáles son los datos comunes? estructuras? Estructura de datos

Matriz

En programación, algunas variables del mismo tipo se organizan de forma ordenada para facilitar su procesamiento. Estos elementos de datos secuencialmente similares se denominan matrices. En lenguaje C, las matrices son tipos de datos estructurados. Una matriz se puede descomponer en varios elementos de la matriz, que pueden ser tipos de datos básicos o tipos estructurados. Por lo tanto, según el tipo de elementos de la matriz, las matrices se pueden dividir en matrices numéricas, matrices de caracteres, matrices de punteros, matrices de estructura, etc.

Una pila

es una lista lineal especial que solo se puede insertar y eliminar desde un extremo. Almacena datos en el orden de último en entrar, primero en salir. Los datos que ingresan primero se envían al final de la pila y los últimos datos están en la parte superior de la pila. aparecerá (los últimos datos se leen primero).

Cola

Una tabla lineal especial que solo permite eliminar datos en el extremo frontal de la tabla e insertarlos en el extremo posterior. El final que realiza la operación de inserción se denomina cola de la cola y el extremo que realiza la operación de eliminación se denomina cabecera de la cola. Cuando no hay elementos en la cola, se denomina cola vacía.

Lista enlazada

es una estructura de almacenamiento no continua y no secuencial en una unidad de almacenamiento física. El orden lógico de los elementos de datos se implementa mediante el orden de los enlaces de puntero en el enlace. lista. Una lista vinculada consta de una secuencia de nodos (cada elemento de la lista vinculada se denomina nodo) que se puede generar dinámicamente en tiempo de ejecución. Cada nodo consta de dos partes: un campo de datos que almacena el elemento de datos y un campo de puntero que almacena la dirección del siguiente nodo.

Un árbol

es un *** K exhaustivo que consta de n (ngt; 0) nodos, con una relación N definida en K. N satisface las siguientes condiciones:

(1) Hay y sólo hay un nodo k0, que no tiene ninguna relación anterior con la relación N. Conocido como raíz. (2) Excepto K0, cada nodo en K tiene y tiene solo un nodo anterior relacionado con la relación N.

(3) Cada nodo en K puede tener m nodos sucesores relacionados con la relación de hogar N (mgt; = 0).

Gráfico

Un gráfico se compone de un conjunto exhaustivo de *** nodos V y *** aristas E.

Para distinguirlo de una estructura de árbol, los nodos suelen denominarse vértices, mientras que los bordes son pares ordenados de dos vértices que son adyacentes si hay un borde entre ellos;

Montón

En informática, un montón es una estructura de datos de árbol especial en la que cada nodo tiene un valor. Por lo general, cuando nos referimos a la estructura de datos del montón, nos referimos al montón binario. La característica de un montón es que el nodo raíz tiene el valor más pequeño (o más grande), y los dos subárboles del nodo raíz también son montones.

Tabla hash

Si hay un registro en la estructura con una clave igual a K, entonces debe estar en la ubicación de almacenamiento de f(K). Por lo tanto, los registros se pueden recuperar sin comparación. Esta correspondencia f se llama función hash (función hash), y la tabla construida en base a esta idea es una tabla hash.

Pregunta 4: ¿Cuáles son las clasificaciones de las estructuras de datos? Según las diferentes características de la relación entre elementos de datos, las estructuras de datos generalmente se dividen en las siguientes cuatro estructuras básicas:

(1) *** estructura. La relación entre los elementos de datos de esta estructura es "pertenece al mismo ***".

(2) Estructura lineal. Existe una relación uno a uno entre los elementos de datos de esta estructura.

(3) Estructura de árbol. Existe una relación de uno a muchos entre los elementos de datos de esta estructura.

(4) Estructura gráfica. Existe una relación de muchos a muchos entre los elementos de datos de esta estructura, también conocida como estructura de red.

Las estructuras de datos son la forma en que los ordenadores almacenan y organizan los datos. Una estructura de datos es 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 elegidas pueden mejorar la eficiencia operativa o de almacenamiento.

Pregunta 5: Hay varios tipos de estructuras en las estructuras de datos. ¿Cuáles son? Si te refieres a estructuras lógicas, entonces hay 4 tipos: ***, lineal, de árbol y de gráfico.

Si te refieres a estructuras físicas (también llamadas estructuras de almacenamiento), existen 4 tipos principales: secuenciales, encadenadas, indexadas y hash

Pregunta 6: * y en estructuras de datos ¿Qué es? la diferencia? Así es como funciona en C, ¿verdad? No veo amp; en la versión C de la estructura de datos, ¿verdad?

En la definición, * es un identificador, que declara que la variable es un puntero, por ejemplo, int *p; entonces p es un puntero para escribir

En el llame, *p es la variable apuntada por el puntero p. Por ejemplo, si anteriormente tenía int a=5; int *p=a; apunta a a, y *p es igual a El valor de a es *p=5.

Y amp; es una referencia. Por ejemplo, existe una definición: int a=5;, y luego define int b=amp;a;, entonces b aquí es una referencia al valor de. a, es decir, b =5

, y luego asigna un valor a b: b=10, el valor de a también pasará a ser 10.

Creo que el cartel definitivamente preguntará sobre la diferencia entre * y amp;. Debería tratarse de los parámetros en la definición de la función, porque los dos son relativamente similares aquí:

. Pongamos algunos ejemplos simples:

1. Defina int x = 0; y int *p = x

1. Si define una función: void fun_1 (int a) { a = 5 }, luego llama: fun_1 (x); después de eso, x también es igual a 0 porque la función fun_1 solo cambia el valor del parámetro formal a, a es solo una variable local en la función fun_1, llamar a fun_1 (x) es equivalente a "a = x; a = 5;", x no tiene cambios

2. Si la función está definida: void fun_2 (int amp; a) { a = 5; }, luego llame a: fun_2 (int amp; a) { a = 5 }, luego llame a: fun_2 (int amp; a) { a = 5; = 5; }, luego llama: fun_2 (int amp; a) { a = 5 }, luego llama: fun_2 (int amp; a) { a = 5; un = 5; Si define una función: void fun_3 (int *a) { *a=5 }, entonces llame a: fun_3(int amp) { *a=5; Luego llame a: fun_3(p); después de eso, x es igual a 5 porque el parámetro a de la función fun_3 es un puntero, lo que equivale a a=p y *p apuntan a la misma dirección, cambiando *; a significa cambiar *p. En la misma dirección, cambiar *a significa cambiar *p, que es x

Pregunta 7: ¿Qué es una estructura de datos? Existen varias relaciones entre las estructuras de datos que son los objetos informáticos de las computadoras en el estudio. -Problemas de programación informática numérica y las relaciones y operaciones entre ellos.

"Estructura de datos (edición en lenguaje C)", Yan Weimin, Tsinghua University Press.

Las estructuras entre datos incluyen estructuras de datos lineales (si existe la relación lineal más simple entre los objetos procesados ​​por la computadora, el modelo matemático puede denominarse estructuras de datos lineales) y datos como tablas, árboles, gráficos. , etc. Estructura (las fórmulas matemáticas no se pueden utilizar al describir modelos matemáticos para problemas no numéricos).

Pregunta 8: ¿Cuáles son las estructuras básicas de las estructuras de datos y cuáles son las características de cada una? 1. El criterio principal para evaluar el rendimiento temporal de un algoritmo es (la complejidad temporal del algoritmo).

2. La complejidad temporal del algoritmo está relacionada con el tamaño del problema y también con el (estado inicial) de la instancia de entrada.

3. En general, la entrada a un algoritmo utilizado para resolver un problema se llama (el tamaño del problema).

4. Además de la corrección, ¿qué otros tres puntos se deben considerar al elegir un algoritmo?

Respuesta: El algoritmo que elijas primero debe ser correcto. Además, se consideran principalmente los siguientes puntos: el tiempo que lleva implementar el algoritmo; ② el espacio de almacenamiento consumido por la implementación del algoritmo, considerando principalmente el espacio de almacenamiento auxiliar; ③ el algoritmo debe ser fácil de entender, fácil de codificar y fácil; para depurar, etc.

6.

6. Entre los siguientes cuatro métodos de clasificación, el método inestable es (D)

A. Clasificación por inserción directa B. Clasificación por burbujas C. Combinar ordenación D. Ordenación por selección directa

7. Organice las siguientes funciones en orden de tasa de crecimiento de pequeña a grande:

2100, (3/2)n, (2/ 3 )n, nn, n0.5, n! 2n, lgn, nlgn, n3/2

Pregunta 9: ¿Cuál es la diferencia entre algoritmo y estructura de datos? La estructura de datos es la base para la implementación del algoritmo. La implementación del algoritmo siempre depende de algún tipo de estructura de datos. Normalmente, cuando se desarrolla un algoritmo, se construye una estructura de datos que es adecuada para el algoritmo. Si una estructura de datos se separa de un algoritmo, ¿de qué sirve? De hecho, no existe ningún libro que solo hable sobre estructuras de datos, ni ningún libro que solo hable sobre algoritmos. Por supuesto, hay una diferencia entre los dos: el algoritmo es más abstracto y se centra en el modelado del problema, mientras que la estructura de datos es la implementación específica del problema.

Pregunta 10: ¿Cuáles son los algoritmos básicos de la estructura de datos? 1. Algoritmo de clasificación 1. Clasificación simple (incluida clasificación por burbujas, clasificación por inserción, clasificación por selección) 2. Clasificación rápida, muy común 3. Clasificación en montón 4 Clasificación por fusión, la más estable, es decir, no habrá situaciones malas 2. Algoritmo de búsqueda 1. El algoritmo de búsqueda más básico. Algoritmo de búsqueda: el algoritmo de búsqueda binaria más básico, el algoritmo de búsqueda más común, la premisa es que la secuencia ha sido ordenada, también hay búsquedas de profundidad primero y de amplitud limitada, y también hay optimizaciones mediante poda, A *, tablas hash; y otros métodos. En tercer lugar, por supuesto, están las estructuras de datos básicos, pilas, colas y árboles. Hay algunas operaciones básicas como stack pop y push, selección de encabezados de cola, selección de colas, etc., y también existen implementaciones específicas de estas estructuras de datos, ya sea para usar espacio de almacenamiento continuo (matriz) o listas vinculadas, dos métodos de almacenamiento específicos. Las operaciones específicas implementadas en el método son diferentes. También hay operaciones de árbol, como recorrido de primer orden, recorrido intermedio, recorrido posterior, etc. Por supuesto, estos son sólo algunos algoritmos básicos para estructuras de datos. Las ideas de algoritmos básicos deben ser: 1. Retroceso 2. Recursión 3. Codicioso 4. Programación dinámica 5. Partición Algunos libros de texto sobre estructura de datos no cubren algoritmos básicos. Puede buscar otros libros sobre algoritmos básicos. Si os interesa podéis ir a OJ a hacer las preguntas, jeje. Es bastante difícil aprender el algoritmo.