Documentos de Académico
Documentos de Profesional
Documentos de Cultura
D.G.E.S.T.
S.E.P.
MATERIA: Estructura de datos TEMA: Unidad 4. Estructuras no lineales PRESENTA: Telma Yael Lpez Lpez Keren Yesenia Mndez Montes Mario Calderon Vasquez ESPECIALIDAD: Ing. En sistemas computacionales SEMESTRE: 3 GRUPO: O
HEROICA CD. DE JUCHITAN DE ZARAGOZA, OAX., SEPTIEMBRE DEL 2011
Pgina 1
Tabla de contenido
Unidad 4. Estructuras no lineales ........................................................................................... 3 4.1 rboles ................................................................................................................................................ 3 4.1.1 rboles generales ...................................................................................................................... 5 4.1.2 rboles binarios ......................................................................................................................... 6 4.1.3 Recorridos en un rbol binario ................................................................................................ 6 4.1.3.1 Preorden (NID) ............................................................................................................. 7 4.1.3.2. Inorden (IND) ............................................................................................................... 7 4.1.3.3 Postorden (IDN) .......................................................................................................... 7 4.1.4 Balanceo de rboles binarios .................................................................................................. 8 4.2 Grafos .................................................................................................................................................. 8 4.2.1. Grafo no dirigido .................................................................................................................... 11 4.2.2. Grafo dirigido ......................................................................................................................... 11 4.2.3. Pseudografo ............................................................................................................................ 12 4.2.4. Pseudografo dirigido ............................................................................................................. 12 4.2.5. Grafos particulares ............................................................................................................... 15 4.2.6. Grafo conexo .......................................................................................................................... 16
Pgina 2
datos ampliamente usada que emula la forma de un rbol (un conjunto de nodos conectados). Un nodo es la unidad sobre la que se construye el rbol y puede tener cero o ms nodos hijos conectados a l. Se dice que un nodo a es padre de un nodo b, si existe un enlace desde a hasta b (en ese caso, tambin decimos que b es hijo de a). Slo puede haber un nico nodo sin padres, que llamaremos raz. Un nodo que no tiene hijos se conoce como hoja. El rbol Tambin se define como una estructura de datos no lineal. Esta estructura se usa principalmente para representar datos con una relacin jerrquica entre sus elementos, como por ejemplo registros, rboles genealgicos y tablas de contenidos. Entre otros tenemos un tipo especial de rbol que es, llamado rbol binario, que puede ser implementado fcilmente en la computadora. *Un rbol es una estructura no lineal en la que cada nodo puede apuntar a uno o varios nodos. *Tambin se suele dar una definicin recursiva: un rbol es una estructura en compuesta por un dato y varios rboles.
Pgina 3
* Nodo hijo: cualquiera de los nodos apuntados por uno de los nodos del rbol. En el ejemplo, 'L' y 'M' son hijos de 'G'.
* Nodo padre: nodo que contiene un puntero al nodo actual. En el ejemplo, el nodo 'A' es padre de 'B', 'C' y 'D'. En cuanto a la posicin dentro del rbol: *Nodo raz: nodo que no tiene padre. Este es el nodo que usaremos para referirnos al rbol. En el ejemplo, ese nodo es el 'A'. *Nodo hoja: nodo que no tiene hijos. En el ejemplo hay varios: 'F', 'H', 'I', 'K', 'L', 'M', 'N' y 'O'. *Nodo rama: aunque esta definicin apenas la usaremos, estos son los nodos que no pertenecen a ninguna de las dos categoras anteriores. En el ejemplo: 'B', 'C', 'D', 'E', 'G' y 'J'.
Pgina 4
Un rbol es en el que cada nodo o bien todos o ninguno de los hijos existen, se llama rbol completo. Caractersticas del rbol, en relacin a su tamao *Orden: es el nmero potencial de hijos que puede tener cada elemento de rbol. De este modo, diremos que un rbol en el que cada nodo puede apuntar a otros dos es de orden dos, si puede apuntar a tres ser de orden tres, etc. *Grado: el nmero de hijos que tiene el elemento con ms hijos dentro del rbol. En el rbol del ejemplo, el grado es tres, ya que tanto 'A' como 'D' tienen tres hijos, y no existen elementos con ms de tres hijos. *Nivel: se define para cada elemento del rbol como la distancia a la raz, medida en nodos. El nivel de la raz es cero y el de sus hijos uno. As sucesivamente. En el ejemplo, el nodo 'D' tiene nivel 1, el nodo 'G' tiene nivel 2, y el nodo 'N', nivel 3. *Altura: la altura de un rbol se define como el nivel del nodo de mayor nivel. Como cada nodo de un rbol puede considerarse a su vez como la raz de un rbol, tambin podemos hablar de altura de ramas. El rbol del ejemplo tiene altura 3, la rama 'B' tiene altura 2, la rama 'G' tiene altura 1, la 'H' cero, etc.
Pgina 5
relacionados entre s a travs de ramas. El rbol genealgico es el ejemplo tpico ms representativo del concepto de rbol general.
Pgina 6
Pgina 7
4.2 Grafos.
Grafo etiquetado con 6 vrtices y 7 aristas. En matemticas y ciencias de la computacin, un grafo o grfica es el principal objeto de estudio de la teora de grafos. Informalmente, un grafo es un conjunto de objetos llamados vrtices o nodos unidos por enlaces llamados aristas o arcos, que permiten representar relaciones binarias entre elementos de un conjunto. Tpicamente, un grafo se representa grficamente como un conjunto de puntos (vrtices o nodos) unidos por lneas (aristas). Desde un punto de vista prctico, los grafos permiten estudiar las interrelaciones entre unidades que interactan unas con otras.
Pgina 8
Por ejemplo, una red de computadoras puede representarse y estudiarse mediante un grafo, en el cual los vrtices representan terminales y las aristas representan conexiones (las cuales, a su vez, pueden ser cables o conexiones inalmbricas).
Los siete puentes de Konigsberg. El primer artculo cientfico relativo a grafos fue escrito por el matemtico suizo Leonard Euler en 1736. Euler se bas en su artculo en el problema de los puentes de Konigsberg. La ciudad de Kaliningrado, originalmente Konigsberg, es famosa por sus siete puentes que unen ambas mrgenes del ro Pregel con dos de sus islas. Dos de los puentes unen la isla mayor con la margen oriental y otros dos con la margen occidental. La isla menor est conectada a cada margen por un puente y el sptimo puente une ambas islas. El problema planteaba lo siguiente: es posible, partiendo de un lugar arbitrario, regresar al lugar de partida cruzando cada puente una sola vez?
Pgina 9
Abstrayendo este problema y plantendolo con la (entonces an bsica) teora de grafos, Euler consigue demostrar que el grafo asociado al esquema de puentes de Konigsberg no tiene solucin, es decir, no es posible regresar al vrtice de partida sin pasar por alguna arista dos veces. De hecho, Euler resuelve el problema ms general: qu condiciones debe satisfacer un grafo para garantizar que se puede regresar al vrtice de partida sin pasar por la misma arista ms de una vez? Si definimos como "grado" al nmero de lneas que se encuentran en un punto de un grafo, entonces la respuesta al problema es que los puentes de un pueblo se pueden atravesar exactamente una vez s, salvo a lo sumo dos, todos los puntos tienen un grado par. Definiciones Un grafo G es un par ordenado G = (V, E), donde: V es un conjunto de vrtices o nodos, y E es un conjunto de aristas o arcos, que relacionan estos nodos. Normalmente V suele ser finito. Muchos resultados importantes sobre grafos no son aplicables para grafos infinitos. Se llama orden del grafo G a su nmero de vrtices, | V |. El grado de un vrtice o nodo V es igual al nmero de arcos E que se encuentran en l. Un bucle es una arista que relaciona al mismo nodo; es decir, una arista donde el nodo inicial y el nodo final coinciden.
Pgina 10
Grafo no dirigido Un grafo no dirigido o grafo propiamente dicho es un grafo G = (V, E) dnde:
Es un conjunto de pares no ordenados de elementos de . Un par no ordenado es un conjunto de la forma {a, b}, de manera que {a, b} = {b, a}. Para los grafos, estos conjuntos pertenecen al conjunto potencia de V de cardinalidad 2, el cual se denota por .
Pgina 11
es un conjunto de pares ordenados de elementos de . Dada una arista (a, b), a es su nodo inicial y b su nodo final. Por definicin, los grafos dirigidos no contienen bucles. Un grafo mixto es aquel que se define con la capacidad de poder contener aristas dirigidas y no dirigidas. Tanto los grafos dirigidos como los no dirigidos son casos particulares de este.
4.2.3. Pseudografo
Un pseudografo es un grafo G = (V, E) dnde:
Es ordenados de elementos de .
un
conjunto
de pares
no
Es un conjunto de pares ordenados y etiquetados de elementos de Es decir, un pseudografo dirigido es un grafo dirigido que
Variantes sobre las definiciones principales Algunas aplicaciones requieren extensiones ms generales a las dos propuestas clsicas de grafos. Aunque la definicin original los permite, segn la aplicacin concreta pueden ser vlidos o no. A veces V o E pueden ser un multiconjunto, pudiendo haber ms de una arista entre cada par de vrtices. La palabra grafo (a secas) puede permitir o no mltiples aristas entre cada par de vrtices, dependiendo del autor de la referencia consultada. Si se quiere remarcar la inexistencia de mltiples aristas entre cada par de vrtices (y en el caso no dirigido, excluir bucles) el grafo puede llamarse simple. Por otra parte, si se quiere asegurar la posibilidad de permitir mltiples aristas, el grafo puede llamarse multgrafo (a veces se utiliza el trmino pseudografo para indicar que se permiten tanto bucles como mltiples aristas entre cada par de vrtices). Propiedades Adyacencia: dos aristas son adyacentes si tienen un vrtice en comn, y dos vrtices son adyacentes si una arista los une. Incidencia: una arista es incidente a un vrtice si sta lo une a otro. Ponderacin: corresponde a una funcin que a cada arista le asocia un valor (costo, peso, longitud, etc.), para aumentar la expresividad del modelo. Esto se usa mucho para problemas de optimizacin, como el del vendedor viajero o del camino ms corto.
Pgina 13
Etiquetado: distincin que se hace a los vrtices y/o aristas mediante una marca que los hace unvocamente distinguibles del resto. Ejemplos
La imagen es una representacin del siguiente grafo: V:={1, 2, 3, 4, 5, 6} E:={{1,2}, {1,5}, {2,3}, {2,5}, {3,4}, {4,5}, {4,6}} El hecho que el vrtice 1 sea adyacente con el vrtice 2 puede ser denotado como 1 ~ 2. En la Teora de las categoras una categora puede ser considerada como un multgrafo dirigido, con los objetos como vrtices y los morfismos como aristas dirigidas. En ciencias de la computacin los grafos dirigidos son usados para representar mquinas de estado finito y algunas otras estructuras discretas. Una relacin binaria R en un conjunto X es un grafo dirigido simple. Dos vrtices a, b en X estn conectados por una arista dirigida ab si aRb.
Pgina 14
Pgina 15
Pgina 16
vector<bool> visit(_n); vector<bool>::iterator iter; for(iter=visit.begin();iter!= visit.end();iter++) *iter=false; set<int> forvisit; set<int>::iterator actual; forvisit.insert(0); while( !forvisit.empty() ) { actual = (forvisit.begin()); if( visit[*actual] == false ) { for(int i=0;i<_n;i++) { if( _graph[*actual][i] == 1 && !visit[i]) forvisit.insert(i); } } visit[*actual]= true; forvisit.erase(actual); } bool result; for(iter=visit.begin();iter!= visit.end();iter++) result = result && *iter; return result; }
Pgina 17