Galería de mapas mentales [Notas de estudio] Árbol de estructura de datos
Algunos conocimientos sobre árboles en estructuras de datos, incluidos los árboles de Huffman, la búsqueda en tablas de árboles, los árboles binarios de pistas, los métodos de recorrido de árboles binarios y los árboles de expansión mínima. Todos son bienvenidos a aprender.
Editado a las 2023-07-05 11:27:01,Este es un mapa mental sobre una breve historia del tiempo. "Una breve historia del tiempo" es una obra de divulgación científica con una influencia de gran alcance. No sólo presenta los conceptos básicos de cosmología y relatividad, sino que también analiza los agujeros negros y la expansión. del universo. temas científicos de vanguardia como la inflación y la teoría de cuerdas.
¿Cuáles son los métodos de fijación de precios para los subcontratos de proyectos bajo el modelo de contratación general EPC? EPC (Ingeniería, Adquisiciones, Construcción) significa que el contratista general es responsable de todo el proceso de diseño, adquisición, construcción e instalación del proyecto, y es responsable de los servicios de operación de prueba.
Los puntos de conocimiento que los ingenieros de Java deben dominar en cada etapa se presentan en detalle y el conocimiento es completo, espero que pueda ser útil para todos.
Este es un mapa mental sobre una breve historia del tiempo. "Una breve historia del tiempo" es una obra de divulgación científica con una influencia de gran alcance. No sólo presenta los conceptos básicos de cosmología y relatividad, sino que también analiza los agujeros negros y la expansión. del universo. temas científicos de vanguardia como la inflación y la teoría de cuerdas.
¿Cuáles son los métodos de fijación de precios para los subcontratos de proyectos bajo el modelo de contratación general EPC? EPC (Ingeniería, Adquisiciones, Construcción) significa que el contratista general es responsable de todo el proceso de diseño, adquisición, construcción e instalación del proyecto, y es responsable de los servicios de operación de prueba.
Los puntos de conocimiento que los ingenieros de Java deben dominar en cada etapa se presentan en detalle y el conocimiento es completo, espero que pueda ser útil para todos.
Árbol
árbol de huffman
Longitud de ruta ponderada WPL
Supongamos que un árbol binario tiene n nodos de hoja ponderados, entonces la suma de la longitud de la ruta desde el nodo raíz a cada nodo de hoja y el producto del peso del nodo correspondiente se denomina longitud de ruta ponderada WPL (longitud de ruta ponderada) del árbol binario. .
Los mismos nodos hoja construyen diferentes árboles binarios
Los nodos de hoja con pesos mayores están más cerca de la raíz y menor es el valor de wpl.
definición
El árbol binario con la longitud de ruta ponderada mínima se llama árbol de Huffman (también llamado árbol óptimo).
¿Cómo construir?
en principio
Los nodos de las hojas con mayor peso están más cerca del nodo de la raíz.
Cuanto menor sea el peso, más lejos estará el nodo hoja del nodo raíz.
Encuentre el valor pequeño (los nodos sintetizados también deben compararse entre sí)
proceso
No hay nodos de hoja con pesos.
solicitud
Codificación Huffman (codificación de prefijo)
Características de la codificación Huffman: cuanto mayor es el peso, más corto es el código de caracteres y viceversa.
En la codificación Huffman de un conjunto de caracteres, es imposible que la codificación Huffman de un carácter sea el prefijo de la codificación Huffman de otro carácter.
solicitud
Codificación de caracteres
instrucciones de la máquina
Búsqueda de tabla de árbol
árbol de clasificación binaria
izquierda<raíz<derecha
Árbol binario equilibrado AVL
Una versión mejorada del árbol de clasificación binaria (un árbol de clasificación binaria especial). ¡Intente mantener el árbol lo más corto posible!
¿Cómo saber si un árbol crece normalmente?
Factor de equilibrio = altura del subárbol izquierdo - altura del subárbol derecho
Árbol de clasificación binaria con factor de equilibrio <= 1
Equilibrar la profundidad máxima y el número mínimo de nodos de un árbol binario
Árbol B (una extensión del árbol binario equilibrado)
insertar
Crear un árbol B es un proceso de operaciones de inserción continuas
árbol binario de pistas
Las condiciones para el campo de cadena vacío izquierdo: está en el extremo izquierdo de la secuencia y el puntero izquierdo original está vacío.
Las condiciones para el dominio de cadena vacío derecho: está en el extremo derecho de la secuencia y el puntero derecho original está vacío.
Método de recorrido del árbol binario
para el nodo raíz
prólogo
raíz-izquierda-derecha
orden medio
raíz izquierda-derecha
Epílogo
raíz izquierda-derecha
nivel
Recorrer línea por línea
árbol de expansión mínimo
algoritmo de primi
Requerir
El peso es el más pequeño y no puede formar un ciclo.
Para preguntas con pocos nodos
Los pasos principales del algoritmo Prime son: en un gráfico conectado ponderado, V es un conjunto que contiene todos los vértices. U ya es un nodo en el árbol de expansión mínima, comenzando desde cualquier vértice v en el gráfico. ={v}, repita las siguientes operaciones: encuentre una arista con el peso más pequeño entre todas las aristas (u,w)∈E de todas u∈U,w∈V-U, y agregue la arista (u,w) al conjunto de bordes encontrados y agregue el punto w al conjunto U. Cuando U = V, se encuentra el árbol de expansión mínimo.
algoritmo de Kruskal
Primero determine los nodos y seleccione aquellos con los caminos más cortos en orden.
No se puede formar un anillo
Para preguntas con un número reducido de lados.
Idea básica: liderada por el borde. En un gráfico conectado ponderado, U es el conjunto de todas las aristas, N es el número de vértices y sea SU el conjunto de aristas que ya están en el árbol de expansión mínima. Repita las siguientes operaciones: cada vez seleccione una arista e∈U-SU con el peso más pequeño y una arista que no forme un ciclo con las aristas en SU, y súmela a SU. Cuando el número de aristas en SU es igual a N-1, se encuentra el árbol de expansión mínimo.
pregunta
Si un nodo no es un nodo hoja, tendrá hijos, y estos hijos serán un grupo de hermanos.
El número de nodos sin un puntero derecho es: nodo raíz número de nodos que no son hoja
Excluya los simétricos, cuente el número y asegúrese de que siempre sea menos a la izquierda y más a la derecha o más a la izquierda y menos a la derecha.
Árbol
Longitud promedio de búsqueda en ASL
relacionado con la altura del árbol
Capítulo 5 Árboles y árboles binarios
Recorrido de árbol binario y árbol de Huffman
Dificultad: Conversión entre árboles binarios y árboles y bosques.
La mayoría de las pruebas tienen la forma de preguntas de opción múltiple, que también implican recorrido de árbol y algoritmos de árbol de Huffman.
Árbol
conjunto finito de n nodos
El nodo raíz es único.
No hay límite para el número de subárboles, pero no se cruzan entre sí.
Grado: el número de subárboles que posee el nodo.
Árbol binario: grado <=2
naturaleza
Hay como máximo 2^i-1 nodos en el i-ésimo nivel del árbol binario.
Si la profundidad en el árbol binario es k, entonces hay como máximo 2^k-1 nodos. (k>=1)
n0 = n2 1, n0 representa el número de nodos con grado 0 y n2 representa el número de nodos con grado 2.
En un árbol binario completo, la profundidad de un árbol binario completo con n nodos es [log2n] 1, donde [log2n] se redondea hacia abajo
[Árbol binario] Fórmula de cálculo del nodo N = n0 n1 n2
Número total de nodos = grado total 1=Oxn0 1xn1 2xn2 ..
árbol binario completo
Todos los nodos tienen subárboles izquierdo y derecho, y todos los nodos hoja están al mismo nivel.
árbol binario completo
Los nodos hoja solo pueden aparecer en el nivel más bajo y en el siguiente nivel inferior.
Y los nodos de la capa inferior se concentran en el árbol binario en las posiciones más a la izquierda de la capa.
La correspondencia transversal entre árboles, bosques y árboles binarios.
montón
definición
Debe ser un árbol binario completo.
Un árbol binario completo sólo permite que la última fila esté menos que llena. Y la última fila debe ordenarse de izquierda a derecha. No debe haber espacio entre elementos en la última fila.
orden del montón
dagendui
pequeño montón de raíces
Operaciones básicas
almacenamiento en montón
1. Recorre el número según la secuencia de capas, representada por una matriz unidimensional
El nodo principal es i, el subíndice del nodo secundario izquierdo es 2i 1 y el nodo secundario derecho es 2i 2 (esta regla se usa a menudo en algoritmos)
Filtro superior
Sólo el último elemento del árbol viola el orden del montón.
Se utiliza principalmente para insertar nuevos elementos en el montón.
Complejidad: O (logN)
Filtrar hacia abajo
Sólo el nodo raíz viola el orden del montón
Ajuste el nodo raíz hacia abajo.
Complejidad: O (logN)
construir una pila
¿Cómo convertir una matriz desordenada en un montón?
De arriba hacia abajo
Insertar en el montón, filtrar
Complejidad: O (NlogN)
de abajo hacia arriba
Primero ajuste los elementos en un montón y filtre hacia abajo, comenzando desde la segunda hasta la última fila, realice la operación de filtrado hacia abajo en el nodo principal.
Complejidad: O(N)
Aplicación: cola prioritaria
dos operaciones
insertar cola
elemento mínimo emergente
Se puede implementar usando un pequeño montón raíz.
Debido a que el nodo raíz del montón raíz pequeño es mínimo, después de aparecer, los elementos restantes se ajustan en un montón (coloque el último elemento en el nodo raíz y filtre hacia abajo)
Complejidad: O (logN)
Clasificación de montón: elementos emergentes de la cola de prioridad en secuencia
Complejidad: O (NlogN)