Este documento presenta una introducción a los árboles como estructura de datos no lineal. Explica que un árbol consiste en nodos con conexiones jerárquicas donde cada nodo puede tener múltiples nodos hijos pero sólo un padre. Describe árboles binarios como un caso especial donde cada nodo tiene a lo sumo dos hijos, e introduce árboles binarios de búsqueda que permiten búsquedas eficientes al mantener un orden entre los nodos.
https://github.com/KamilaMolinaOrellana/ArbolBinarioImplementadoEnJava
En esta presentación se muestra la estructura básica y dinámica de los árboles, de los árboles binarios además de la búsqueda binaria en los árboles.
Al final se cuenta con con un enlace que lleva al Repositorio de GitHub donde se encuentra el código implementado en JAVA libre para descargar, para que lo puedan revisar
https://github.com/KamilaMolinaOrellana/ArbolBinarioImplementadoEnJava
En esta presentación se muestra la estructura básica y dinámica de los árboles, de los árboles binarios además de la búsqueda binaria en los árboles.
Al final se cuenta con con un enlace que lleva al Repositorio de GitHub donde se encuentra el código implementado en JAVA libre para descargar, para que lo puedan revisar
Explicación puntual de lo que es un Arbol Binario de tipo Red Black
Fuente:
http://ingsistemas.ufps.edu.co/SEED/arbolrojinegro.html
http://www.ica.luz.edu.ve/eda/guias/rojonegros.pdf
Instituto Tecnológico Superior de Guasave
Ingeniería en Sistemas Computacionales
Estructura de Datos
Unidad V: Métodos de Ordenamiento
Retícula ISIC-2010-224: Programa: AED-1026/2016
Cuadro sinóptico estructuras de datos y su clasificaciónAlex Uhu Colli
Una estructura de datos es una clase de datos que se puede caracterizar por su organización y operaciones definidas sobre ella. Algunas veces a estas estructuras se les llama tipos de datos.
en ellas encontramos las siguientes:
ESTRUCTURAS LÓGICAS DE DATOS:
ESTRUCTURAS PRIMITIVAS Y SIMPLES: ESTRUCTURAS LINEALES Y NO LINEALES:
Esta presentación le pertenece a Tania Landivar.
Las estructuras de datos lineales (vectores ) obliga afijar por adelantado el espacio a ocupar en memoria, de modo que, cuando se desea añadir un nuevo elemento que rebase el tamaño prefijado del array, no es posible realizar la operación sin que se produzca un error en tiempo de ejecución, para evitar esto se hace uso de las listas enlazadas.
Una lista enlazada es una colección o secuencia de elementos llamados nodos, dispuestos uno detrás de otro, en la que cada elemento se conecta al siguiente elemento por un “enlace” o “referencia”.
Este documento contiene información acerca de los Arboles en Estructura de datos, como son los Arboles Binarios al igual que los elementos que los componen.
Explicación puntual de lo que es un Arbol Binario de tipo Red Black
Fuente:
http://ingsistemas.ufps.edu.co/SEED/arbolrojinegro.html
http://www.ica.luz.edu.ve/eda/guias/rojonegros.pdf
Instituto Tecnológico Superior de Guasave
Ingeniería en Sistemas Computacionales
Estructura de Datos
Unidad V: Métodos de Ordenamiento
Retícula ISIC-2010-224: Programa: AED-1026/2016
Cuadro sinóptico estructuras de datos y su clasificaciónAlex Uhu Colli
Una estructura de datos es una clase de datos que se puede caracterizar por su organización y operaciones definidas sobre ella. Algunas veces a estas estructuras se les llama tipos de datos.
en ellas encontramos las siguientes:
ESTRUCTURAS LÓGICAS DE DATOS:
ESTRUCTURAS PRIMITIVAS Y SIMPLES: ESTRUCTURAS LINEALES Y NO LINEALES:
Esta presentación le pertenece a Tania Landivar.
Las estructuras de datos lineales (vectores ) obliga afijar por adelantado el espacio a ocupar en memoria, de modo que, cuando se desea añadir un nuevo elemento que rebase el tamaño prefijado del array, no es posible realizar la operación sin que se produzca un error en tiempo de ejecución, para evitar esto se hace uso de las listas enlazadas.
Una lista enlazada es una colección o secuencia de elementos llamados nodos, dispuestos uno detrás de otro, en la que cada elemento se conecta al siguiente elemento por un “enlace” o “referencia”.
Este documento contiene información acerca de los Arboles en Estructura de datos, como son los Arboles Binarios al igual que los elementos que los componen.
Instituto Tecnológico Superior de Guasave
Ingeniería en Sistemas Computacionales
Estructura de Datos
Unidad IV: Estructuras no Lineales
Retícula ISIC-2010-224: Programa: AED-1026/2016
Tecnológico Nacional de México
Instituto Tecnológico Superior de Guasave
Ingeniería en Sistemas Computacionales
Estructura de Datos: AED-1026
Estructuras no lineales
Material de clase
Otras estructuras de datos (heap, tablas hash y diccionarios)Alvaro Enrique Ruano
Esta presentación es parte del contenido del curso de Estructuras de Datos I impartido en la Universidad Rafael Landívar durante el año 2017.
Creado por Ing. Alvaro Enrique Ruano
https://alvaroruano.me/
Esta presentación es parte del contenido del curso de Estructuras de Datos I impartido en la Universidad Rafael Landívar durante el año 2017.
Creado por Ing. Alvaro Enrique Ruano
Esta presentación es parte del contenido del curso de Estructuras de Datos I impartido en la Universidad Rafael Landívar durante el año 2017.
Incluye los temas:
•Listas
•Listas Enlazadas
•Listas Circulares
•Listas Doblemente Enlazadas
•Pilas
•Colas
Creado por Ing. Alvaro Enrique Ruano
Esta presentación es parte del contenido del curso de Estructuras de Datos I impartido en la Universidad Rafael Landívar durante el año 2017.
Incluye los temas:
1.1 Complejidad de un algoritmo
• Espacial
• Temporal
1.2 Análisis asintótico
• Notaciones
• Clasificación de algoritmos
Creado por Ing. Alvaro Enrique Ruano
Esta presentación es parte del contenido del curso de Programación Avanzada impartido en la Universidad Rafael Landívar durante el año 2015.
Incluye los temas:
• Ordenamiento rápido
• Ordenamiento por mezcla
Creado por Ing. Alvaro Enrique Ruano
Esta presentación es parte del contenido del curso de Programación Avanzada impartido en la Universidad Rafael Landívar durante el año 2015.
Incluye los temas:
• Método por Selección
• Método Shell
Creado por Ing. Alvaro Enrique Ruano
Esta presentación es parte del contenido del curso de Programación Avanzada impartido en la Universidad Rafael Landívar durante el año 2015.
Incluye los temas:
• Búsqueda por método secuencial
• Búsqueda por método binario
• Búsqueda por método hashing
Creado por Ing. Alvaro Enrique Ruano
Esta presentación es parte del contenido del curso de Programación Avanzada impartido en la Universidad Rafael Landívar durante el año 2015.
Incluye los temas:
• Recursividad directa e indirecta
• Recursión versus iteración
Creado por Ing. Alvaro Enrique Ruano
Programación Orientada a Objetos - constructores y destructoresAlvaro Enrique Ruano
Esta presentación es parte del contenido del curso de Programación Avanzada impartido en la Universidad Rafael Landívar durante el año 2015.
Incluye los temas:
• Constructores
• Destructores
Creado por Ing. Alvaro Enrique Ruano
Esta presentación es parte del contenido del curso de Programación Avanzada impartido en la Universidad Rafael Landívar durante el año 2015.
Incluye los temas:
• Método Burbuja
• Método por Inserción
Creado por Ing. Alvaro Enrique Ruano
Programación Orientada a Objetos - Otras relaciones entre clasesAlvaro Enrique Ruano
Esta presentación es parte del contenido del curso de Programación Avanzada impartido en la Universidad Rafael Landívar durante el año 2015.
Creado por Ing. Alvaro Enrique Ruano
Esta presentación es parte del contenido del curso de Programación Avanzada impartido en la Universidad Rafael Landívar durante el año 2015.
Incluye los temas:
• Herencia
• Polimorfismo
Creado por Ing. Alvaro Enrique Ruano
Esta presentación es parte del contenido del curso de Programación Avanzada impartido en la Universidad Rafael Landívar durante el año 2015.
Incluye los temas:
• POO - atributos y métodos
Creado por Ing. Alvaro Enrique Ruano
Esta presentación es parte del contenido del curso de Programación Avanzada impartido en la Universidad Rafael Landívar durante el año 2015.
Incluye los temas:
• Introducción a los paradigmas de programación
Creado por Ing. Alvaro Enrique Ruano
Esta presentación es parte del contenido del curso de Programación Avanzada impartido en la Universidad Rafael Landívar durante el año 2015.
Incluye los temas:
• Técnicas de programación
• Estilo y codificación
• Documentación
• Depuración
• Pruebas
Creado por Ing. Alvaro Enrique Ruano
Análisis de una inversión en activos financieros negociados por medio de la B...Alvaro Enrique Ruano
El presente trabajo pretende ejemplificar el proceso de creación de un portafolio de inversión diversificado eligiendo entre diferentes valores en la BVN. El entendimiento del funcionamiento básico de la bolsa de valores y de la teoría de creación de portafolios es clave para poder realizar inversiones exitosas, por lo que se repasará el proceso completo mientras se vaya avanzando en el ejemplo.
Creado por Alvaro Enrique Ruano como parte del curso de "Teoría de Inversiones" de la Maestría en Finanzas de la Universidad Rafael Landívar
Solución de problemas y ciclo de vida del desarrollo de softwareAlvaro Enrique Ruano
Esta presentación es parte del contenido del curso de Programación Avanzada impartido en la Universidad Rafael Landívar durante el año 2015.
Incluye los temas:
* Abstracción y resolución de problemas
* Introducción al ciclo de vida del software
Creado por Ing. Alvaro Enrique Ruano
Si bien los hospitales conjuntan a profesionales de salud que atienden a la población, existe un equipo de organización, coordinación y administración que permite que los cuidados clínicos se otorguen de manera constante y sin obstáculos.
Mario García Baltazar, director del área de Tecnología (TI) del Hospital Victoria La Salle, relató la manera en la que el departamento que él lidera, apoyado en Cirrus y Estela, brinda servicio a los clientes internos de la institución e impulsa una experiencia positiva en el paciente.
Conoce el Hospital Victoria La Salle
Ubicado en Ciudad Victoria, Tamaulipas, México
Inició operaciones en el 2016
Forma parte del Consorcio Mexicanos de Hospitales
Hospital de segundo nivel
21 habitaciones para estancia
31 camas censables
13 camillas
2 quirófanos
+174 integrantes en su plantilla
+120 equipos médicos de alta tecnología
+900 pacientes atendidos
Servicios de +20 especialidades
Módulos utilizados de Cirrus
HIS
EHR
ERP
Estela - Business Intelligence
Los desafíos de calidad de software que nos trae la IA y los LLMsFederico Toledo
En esta charla, nos sumergiremos en los desafíos emergentes que la inteligencia artificial (IA) y los Large Language Models (LLMs) traen al mundo de la calidad del software y el testing. Exploraremos cómo la integración, uso o diseño de modelos de IA plantean nuevos retos, incluyendo la calidad de datos y detección de sesgos, sumando la complejidad de probar algo no determinístico. Revisaremos algunas propuestas que se están llevando adelante para ajustar nuestras tareas de testing al desarrollo de este tipo de sistemas, incluyendo enfoques de pruebas automatizadas y observabilidad.
Escaneo y eliminación de malware en el equiponicromante2000
El malware tiene muchas caras, y es que los programas maliciosos se reproducen en los ordenadores de diferentes formas. Ya se trate de virus, de programas espía o de troyanos, la presencia de software malicioso en los sistemas informáticos siempre debería evitarse. Aquí te muestro como trabaja un anti malware a la hora de analizar tu equipo
4. Árboles
• Si bien una estructura dinámica lineal brinda varias
ventajas sobre las estructuras estáticas contiguas,
todavía tiene una gran limitante, el acceso a los
elementos se debe realizar de forma secuencial.
• Para los casos donde esto es un problema
aparecen las estructuras de datos no lineales
(estructuras multienlazadas), en especial los
árboles.
5. Árboles
• El árbol es una estructura de datos fundamental en
informática, muy utilizada en todos sus campos.
• Algorítmica: métodos de clasificación y
búsqueda
• Compiladores: árboles sintácticos de una
gramática
• Inteligencia artificial: árboles de juegos, árboles
de decisión, etc.
• Se utilizan principalmente para representar datos
con relación jerárquica.
6. Árboles
• Un árbol es una estructura de datos homogénea,
dinámica y no lineal, en la que cada nodo
(elemento) puede tener varios nodos posteriores,
pero sólo puede tener un nodo anterior.
• Un árbol es:
• Dinámico: Su estructura puede cambiar durante
la ejecución de un programa.
• No lineal: Cada elemento del árbol puede
contener varios elementos que dependen de él.
7. Árboles
• Las definiciones importantes a tener en cuenta
son:
• Nodo: Son todos los vértices o elementos del
árbol.
• Raíz: Es el nodo del cual se derivan todos los
demás nodos. Solamente se puede tener una
en cada árbol.
• Nodo terminal (hoja, leaf node): Es aquel nodo
que no contiene ningún subárbol
• Camino (arco): Enlace entre dos nodos
consecutivos.
8. Árboles
• Las definiciones importantes a tener en cuenta
son:
• Nodo Padre: Nodo antecesor o ascendiente del
actual. La raíz no tiene un nodo padre.
• Nodos Hermanos: Nodos de un mismo padre.
• Nodos Interiores: Nodos que no son hojas ni
raíces.
• Bosque: Colección de dos o más árboles.
9. Árboles
• Las definiciones importantes a tener en cuenta
son:
• Rama: Camino que termina en una hoja.
• Nivel de un nodo: Longitud del camino desde la
raíz al nodo específico. Se dice que la raiz tiene
un nivel 0.
• Altura del árbol (profundidad): Número máximo
de nodos de una rama. Equivale al nivel más
alto de los nodos más uno.
• Peso del árbol: Número de nodos hoja.
12. Árboles
• La definición de un árbol implica una estructura
recursiva.
• De la raíz se desprenden otros árboles
denominados “subárboles del raíz” u offspring, los
cuales a su vez tienen su propia raíz.
14. Árboles Binarios
● Es un árbol en el que cada nodo puede tener
únicamente 0, 1 o 2 subárboles.
● Los subárboles reciben el nombre de “Subárbol
izquierdo” y “Subárbol derecho”.
● Puede ser implementado fácilmente en una
computadora.
16. Árboles Binarios
● Los árboles binarios tienen cierta terminología
propia de su estructura.
● Árboles Similares: Son aquellos que
tienen la misma estructura
● Árboles Equivalentes: Son aquellos que
además de ser similares contienen la
misma información.
● Árbol Equilibrado: Es aquel en que la
altura de los dos subárboles de la raíz se
diferencian en como máximo una unidad.
17. Árboles Binarios
● Los árboles binarios tienen cierta terminología
propia de su estructura.
● Árbol Completo: Es aquel en que todos
los nodos tienen exactamente 0 o dos
subárboles.
● Árbol Lleno: Es aquel árbol completo en
el que todos los niveles están llenos.
● Árbol Degenerado: Es aquel árbol en
que todos sus nodos tienen solamente
un subárbol.
24. Árboles Binarios
● Para los árboles binarios, especialmente para
los árboles llenos se cumple lo siguiente:
● Para una altura H
○ La cantidad máxima de nodos N está
dada por ((2^H) - 1)
○ La cantidad máxima de nodos n en el
último nivel está dada por 2^(H-1)
● Para una cantidad de nodos N
○ La altura del árbol debe ser como
mínimo log(n+1)
25. Conversión a Binarios
● Existe un algoritmo sencillo para convertir
cualquier árbol a Binario.
● Se copia la raíz.
● Se coloca el primer hijo del árbol
tradicional como hijo izquierdo.
● Todos los hermanos de éste se colocan
sucesivamente como hijos derechos.
● Se repite recursivamente en todas las
ramas.
33. Recorridos
● El recorrido es el proceso que permite acceder
una única vez a cada uno de los nodos del
árbol.
● Al recorrer el árbol se debe examinar el
contenido completo del mismo.
● Existen varios métodos de recorrer un árbol
binario.
● Las tareas asociadas son:
○ Visitar la raíz
○ Recorrer el subárbol izquierdo
○ Recorrer el subárbol derecho
34. Recorrido Pre-Orden
● Las tareas asociadas se realizan
recursivamente en el siguiente orden:
○ Visitar la raíz
○ Recorrer el subárbol izquierdo
○ Recorrer el subárbol derecho
35. Recorrido In-Orden
● Las tareas asociadas se realizan
recursivamente en el siguiente orden:
○ Recorrer el subárbol izquierdo
○ Visitar la raíz
○ Recorrer el subárbol derecho
36. Recorrido Post-Orden
● Las tareas asociadas se realizan
recursivamente en el siguiente orden:
○ Recorrer el subárbol izquierdo
○ Recorrer el subárbol derecho
○ Visitar la raíz
42. El problema de las búsquedas
● Cuando analizamos los métodos de búsqueda
secuencial y binario determinamos que el
segundo es mucho más eficiente.
● El problema del método binario es que necesita
que el listado se encuentre ordenado
previamente.
● Los procesos para mantener un arreglo o lista
ordenados luego de las inserciones y
eliminaciones son muy complejos.
43. Árboles binarios de búsqueda
● Es una estructura donde los elementos pueden
ser eficazmente localizados, insertados o
borrados.
● Es ideal para los casos donde se tienen que
manejar gran número de operaciones.
● Esta estructura también es llamada “Árbol
binario clasificado”, “Binary search tree” o
“ABB”.
44. Árboles binarios de búsqueda
● El dato que contendrá el árbol debe permitir
clasificación, es decir, debe poder compararse
con otro para determinar si es mayor, menor o
igual.
● El primer valor recibido siempre será la raiz.
● En cualquier nodo, todos los valores del
subárbol izquierdo son menores o iguales al
valor del nodo.
● Igualmente, todos los valores del subárbol
derecho son mayores al valor del nodo.
47. Búsqueda
● La búsqueda en un árbol binario no es más que
una búsqueda binaria.
● En lugar de calcular un nuevo centro utilizamos
al padre como centro.
● Si no se encuentra el elemento, nos movemos
hacia el subárbol izquierdo o derecho según
corresponda.
● La condición de terminación es llegar a un nodo
hoja o encontrar el elemento buscado.
48. Inserción
● Se debe recorrer el árbol buscando la posición
ideal para insertarlo.
● Se evalúa el padre, si es nulo se inserta en esta
posición.
● Si no es nulo se evalúa si corresponde
insertarlo a la izquierda o a la derecha
● Se realiza una llamada recursiva al método de
inserción para el subárbol correspondiente.
53. Eliminación
● Es la operación más complicada.
● Se debe conservar el orden de los elementos
del árbol.
● Se consideran diferentes casos según la
posición del nodo en el árbol:
○ Si es una hoja
○ Si solo tiene un descendiente
○ Si tiene los dos descendientes
55. Eliminación
● Cuando tiene solamente un hijo, se borra el
padre y se sustituye por el hijo.
● Ejemplo: Eliminar F
56. Eliminación
● Cuando tiene los dos hijos, se sustituye por el
elemento situado lo más a la derecha del
subárbol izquierdo o más a la izquierda del
subárbol derecho.
● Ejemplo: Eliminar B o D
57. Árbol AVL
● Es un árbol binario de búsquedas auto
balanceable.
● Es decir que la rama izquierda y la derecha no
difieren en altura por más de uno.
● Fue ideado en 1962 por los matemáticos
Georgii Adelson-Velskii y Yevgeniy Landis.
● La razón de mantener este balance es que el
crecimiento de una operación de búsqueda se
mantenga lo más cercano a O(logn).
58. Árbol AVL
● Es un árbol binario de búsquedas auto
balanceable.
● Es decir que la rama izquierda y la derecha no
difieren en altura por más de uno.
● Fue ideado en 1962 por los matemáticos
Georgii Adelson-Velskii y Yevgeniy Landis.
● La razón de mantener este balance es que el
crecimiento de una operación de búsqueda se
mantenga lo más cercano a O(logn).
59. Factor de Equilibrio
● La principal diferencia entre los ABB y los AVL
es la existencia del “Factor de Equilibrio”.
● Es un número que se calcula como “altura del
subárbol izquierdo” - “altura del subárbol
derecho”.
● Este se recalcula al realizar una inserción o
borrado.
● Si el valor absoluto del factor de equilibrio es
mayor a 1 se debe hacer el proceso de
Rotación.
60. Factor de Equilibrio
● La propiedad de mantener este factor de
equilibrio se llama “Altura invariante”.
● Es considerada una restricción adicional a la ya
presente en los Árboles Binarios de Búsqueda
de “Orden invariante”.
66. Rotaciones
● Para poder re balancear estos árboles existen
mecanismos denominados rotaciones.
● Las rotaciones son de dos tipos:
● Izquierda
● Derecha