0 valutazioniIl 0% ha trovato utile questo documento (0 voti)
47 visualizzazioni10 pagine
El documento describe las estructuras de datos no lineales de árboles y grafos. Explica que los árboles consisten en nodos conectados por ramas de forma no lineal, mientras que los grafos permiten que los nodos se conecten de múltiples formas. También define los tipos básicos de árboles y operaciones como la inserción y eliminación, y describe cómo los grafos se pueden representar y las operaciones básicas como agregar y eliminar vértices y aristas.
El documento describe las estructuras de datos no lineales de árboles y grafos. Explica que los árboles consisten en nodos conectados por ramas de forma no lineal, mientras que los grafos permiten que los nodos se conecten de múltiples formas. También define los tipos básicos de árboles y operaciones como la inserción y eliminación, y describe cómo los grafos se pueden representar y las operaciones básicas como agregar y eliminar vértices y aristas.
El documento describe las estructuras de datos no lineales de árboles y grafos. Explica que los árboles consisten en nodos conectados por ramas de forma no lineal, mientras que los grafos permiten que los nodos se conecten de múltiples formas. También define los tipos básicos de árboles y operaciones como la inserción y eliminación, y describe cómo los grafos se pueden representar y las operaciones básicas como agregar y eliminar vértices y aristas.
• Los árboles son estructuras no lineales, al contrario que los
arrays y las listas enlazadas, que constituyen estructuras lineales. Por definición, un árbol consta de un conjunto finito de elementos, denominados nodos y de un conjunto finito de líneas dirigidas, denominadas ramas, que conectan los nodos. El número de ramas asociado con un nodo es el grado del nodo. DEFINICIONES DE LOS ELEMENTOS DE UN ÁRBOL • El primer nodo de un árbol, normalmente dibujado en la posición superior, se denomina raíz del árbol. • Las flechas que conectan un nodo con otro se llaman arcos o ramas. • Los nodos terminales, esto es, nodos de los cuales no se deduce ningún nodo, se denominan hojas. • Los nodos que no son hojas se denominan nodos internos. • En un árbol donde una rama va de un nodo n1 a un nodo n2, se dice que n1 es el padre de n2 y que n2 es un hijo de n1. • n 1 se llama ascendiente de n2 si n1 es el padre de n2 o si n1 es el padre de un ascendiente de n2. • n2 se llama descendiente de n1 si n1 es un ascendiente de n2. • Un camino de n 1 a n 2 es una secuencia de arcos contiguos que van de n1 a n2. • La longitud de un camino es el número de arcos que contiene o, de forma equivalente, el número de nodos del camino menos uno. • El nivel de un nodo es la longitud del camino que lo conecta al nodo raíz. • La profundidad o altura de un árbol es la longitud del camino más largo que conecta la raíz a una hoja. • Un subárbol de un árbol es un subconjunto de nodos del árbol, conectados por ramas del propio árbol, esto es, a su vez un árbol. CLASIFICACIÓN DE LOS ARBOLES Existen cuatro tipos de árbol binario: • Distinto. Se dice que dos árboles binarios son distintos cuando sus estructuras son diferentes • Similares. Dos árboles binarios son similares cuando sus estructuras son idénticas, pero la información que contienen sus nodos es diferente. • Equivalentes. Son aquellos árboles que son similares y que además los nodos contienen la misma información. • Completos. Son aquellos árboles en los que todos sus nodos excepto los del ultimo nivel, tiene dos hijos; el subárbol izquierdo y el subárbol derecho.
DISTINTO SIMILAR EQUIVALENTE
OPERACIONES BÁSICAS
Como en toda estructura de datos hay dos operaciones básicas.
• Inserción • Eliminación Otra operación importante en el árbol es el recorrido del mismo. El recorrido se puede realizar de tres formas diferentes: • Preorden: Primero el nodo raíz, luego el subárbol izquierdo y a continuación el subárbol derecho. • Inorden: Primero el subárbol izquierdo, luego la raíz y a continuación el subárbol derecho. • Postorden: Primero el subárbol izquierdo, luego el subárbol derecho y a continuación la raíz. APLICACIONES
• Los árboles representan las estructuras no lineales y dinámicas de
datos más importantes en Computación. Dinámicas porque las estructuras de árbol pueden cambiar durante la ejecución de un programa. No lineales, puesto que a cada elemento del árbol pueden seguirle varios elementos por lo tanto, tienen una gran variedad de aplicaciones. Ejemplo: se pueden utilizar para representar fórmulas matemáticas, para organizar adecuadamente la información, para construir un árbol genealógico, en la toma de decisiones, para el análisis de circuitos eléctricos y para numerar los capítulos y secciones de un libro. GRAFOS • Un grafo es una estructura de datos no lineal con la siguiente característica: un nodo puede apuntar a varios y a su vez ser apuntado por otro. • Consiste de un conjunto de nodos o vértices y un conjunto de ejes o aristas. En las versiones más simples, los vértices son dibujados como puntos y las aristas como segmentos entre vértices. De aquí en más supondremos que el trazado usa segmentos para las aristas, excepto cuando se aclare lo contrario. También se supondrá que el grafo es conexo, ya que, si el grafo a trazar no lo es, se puede trazar cada componente conexa por separado. REPRESENTACIÓN DE GRAFOS Estructura de lista Lista de incidencia: El grafo está representado por una matriz de A (aristas) por V (vértices), donde [arista, vértice] contiene la información de la arista (conectado o no conectado). Lista de adyacencia: El grafo está representado por un arreglo de listas de adyacencia. Para un vértice i, la lista de adyacencia está formada por todos los vértices adyacentes a i. Puede construirse en tiempo lineal, y las inserciones pueden hacerse al principio de cada lista, con lo que se asegura tiempo constante. Lista de grados: También llamada secuencia de grados o sucesión gráfica de una secuencia de números, que corresponde a los grados de los vértices del grafo. Estructuras matriciales Matriz de adyacencia: El grafo está representado por una matriz cuadrada M de tamaño n^2, donde n es el número de vértices. Si hay una arista entre un vértice x y un vértice y, entonces el elemento m_ {x, y} es 1, de lo contrario, es 0. Matriz de incidencia: El grafo está representado por una matriz de A (aristas) por V (vértices), donde [vértice, arista] contiene la información de la arista (1 - conectado, 0 - no conectado) OPERACIONES CON GRAFOS • En los grafos, como en todas las estructuras de datos, las dos operaciones básicas son insertar y borrar. En este caso, cada una de ellas se desdobla en dos, para insertar/eliminar vértices e insertar/eliminar aristas. • Insertar vértice. La operación de inserción de un nuevo vértice es una operación muy sencilla, únicamente consiste en añadir una nueva entrada en la tabla de vértices (estructura de datos que almacena los vértices) para el nuevo nodo. A partir de ese momento el grafo tendrá un vértice más, inicialmente aislado, ya que ninguna arista llegará a él. • Insertar arista.Esta operación es también muy sencilla. Cuando se inserte una nueva arista en el grafo, habrá que añadir un nuevo nodo a la lista de adyacencia (lista que almacena los nodos a los que un vértice puede acceder mediante una arista) del nodo origen, así si se añade la arista (A,C), se deberá incluir en la lista de adyacencia de A el vértice C como nuevo destino. • Eliminar vértice. Esta operación es inversa a la inserción de vértice. En este caso el procedimiento a realizar es la eliminación de la tabla de vértices del vértice en sí. A continuación, habrá que eliminar las aristas que tuviesen al vértice borrado como origen o destino. • Eliminar arista. Mediante esta operación se borra un arco del grafo. Para llevar a cabo esta acción es necesario eliminar de la lista de adyacencia del nodo origen el nodo correspondiente al nodo destino. GRACIAS!