Arboles: Un árbol es un grafo simple en el cual existe un único camino entre cada par de vértices.

Sea G =(V,A) un grafo no dirigido. G se denomina ARBOL, si es conexo y no contiene ciclos. Un árbol con raíz, es un árbol que tiene un vértice particular designado como raíz. Ejemplo de árbol:

En la figura anterior G1 corresponde a lo que llamamos mediante la definición ARBOL, en el caso de G2, éste no corresponde debido a que contiene un ciclo. Podemos destacar que cuando un grafo G es un Arbol, se reemplaza G, por R. En la figura mostrada G1 es un subgrafo de G2, en el que G1 contiene los vértices de G2 y es árbol, además lo llamaremos “árbol abarcador”, por que proporciona conexión minimal para el grafo y un esqueleto minimal que une los vértices. Ejemplo de árbol raíz:

Para apoyar el entendimiento de las definiciones entregadas agregaremos algunos teoremas. Teorema: Si a, b son vértices de un árbol R (V,A), entonces hay un camino único que conecta estos vértices.

. entonces se puede decir: • G es un árbol.. • Si x e y son hijos de z entonces x e y son hermanos. es un camino en G. . y así sucesivamente hasta que se pasa por los vértices de Rk en orden previo. simétrico y posterior de R. R2. se pasa por los vértices de R1 en orden simétrico. Sea G un grafo con raíz V0. z son vértices en G y que (v0. a continuación por los vértices de R2 en orden previo. Si R no tiene otros vértices. Rk en orden simétrico. sean R1. • G es conexo y no contiene circuitos. . Teorema: Sea G un grafo simple con v vértices.. R3. • V0. Sea R= (V. Si |V| > 1.. • Si x no tiene hijos entonces x es un vértice terminal. Supóngase que x. es el subarbol de G que tiene a x como raíz. • Si x no es un vértice terminal.. entonces y es un descendiente de x. • V(n) es el hijo de v(n-1). • Si x es un antepasado de y.Teorema: En cualquier árbol R= (V. la raíz.. v1. con x como raíz. • V(n-1) es el padre de v(n). v1. El recorrido en orden simétrico de R primero... • El subgrafo de G que consiste en x y todos sus descendientes. se denomina “árbol dirigido” si el grafo no dirigido asociado con G es un árbol.. después por la raíz r y a continuación por los vértices de los subarboles R2. |V| = |A| + 1. vn).A).A) un árbol con raíz r. entonces la raíz misma constituye el recorrido en orden previo.. Cuando G es un árbol dirigido. . si |A| >= 2.. entonces R tiene al menos dos vértices colgantes. Arboles con Raíz Sea G un grafo dirigido. v(n-1) son los antepasados de v(n). • G no contiene circuitos y tiene (n-1) lados. Rk los subarboles de R según se va de izquierda a derecha.. 2. entonces x es un vértice interno. • G es conexo y tiene (n-1) lados. se denomina “árbol con raíz” si hay un único vértice r. y.. El recorrido de orden previo de R comienza en r y después pasa por los vértices de R1 en orden previo.. 1. Teorema: Para cualquier árbol R = (V.A). . R3..

entonces T tiene i + 1 vértices terminales y 2i + 1 vértices en total.. o viceversa.3... o bien ningún hijo. llamados subárboles m n del árbol original. el árbol se denomina ordenado Árbol ordenado con raíz X y subárboles A1 …Am . El recorrido en orden posterior de R pasa por los vértices de los subarboles R1. o bien ningún hijo. Rk en orden posterior y a continuación por la raíz. Un árbol binario de búsqueda es un árbol binario T donde se han asociado datos a los vértices.. cada dato en el subárbol a la izquierda de v es menor que el dato correspondiente a v. R2. Los datos se disponen de manera que para cualquier vértice v en T. Definición recursiva: Un árbol n-ario (con n  es un conjunto no vacío de elementos del mismo tipo 1) tal que: Existe un elemento destacado llamado raíz del árbol el resto de los elementos se distribuyen en m subconjuntos disjuntos (0   ). Un árbol binario es uno con raíz en el cual cada vértice tiene un hijo a la derecha o un hijo a la izquierda. Teorema: Si T es un árbol binario completo con i vértices internos. cada uno de los cuales es a su vez un árbol n-ario Árbol ordenado: Si en el conjunto de subárboles de un árbol n-ario se supone definida una relación de orden total. Un árbol binario completo es uno en el cual cada vértice tiene un hijo a la derecha y uno a la izquierda..

Los paquetes ATM son siempre de 424 bits de longitud. un código {0. Si cada palabra en el código tiene la misma longitud. Las pausas largas entre letras. • Un árbol homogéneo es completo cuando todas sus hojas tienen la misma profundidad • Un árbol se dice casi-completo cuando se puede obtener a partir de un árbol completo eliminando hojas consecutivas del último nivel. Desafortunadamente. Un código con las palabras de código {0. y el símbolo especial no aparece en la palabra de código. porque "1" es prefijo de tanto "10" como "11". Por ejemplo. es un código sin prefijo. 10. 1. 10. Algunos códigos de longitud variable señalan el final de una palabra de código con un símbolo especial. las letras del ISO 8859-15 son siempre de 8 bits de longitud. Las técnicas para construir un código prefijo pueden ser simples. o bastante complicadas. Las letras del UTF-32/UCS-4 son siempre de 32 bits de longitud. El código Morse es un ejemplo cotidiano de un código de longitud variable con un símbolo especial. los sistemas de comunicación modernos envían todo como secuencias de "0" y "1" – añadir un tercer símbolo sería caro. Sin embargo. Éste es de alguna manera análogo al punto del final de una frase. 11} no la tiene. con la "propiedad de prefijo": ninguna palabra de código es prefijo de cualquier otra palabra de código del conjunto. y usarlo sólo al final de las palabras sería ineficiente. y las pausas . Si cada palabra de código acaba en un símbolo especial. Los prefijos no pueden existir en un código de longitud fija. marca donde acaba una frase y comienza la siguiente. típicamente un código de longitud variable. 11} tiene la propiedad de prefijo. la codificación de longitud fija es ineficiente en situaciones donde algunas palabras son mucho más probables de ser transmitidas que otras. el código se llama código de longitud fija.Árbol 3-ario de números enteros 1 2 Un árbol n-ario se dice homogéneo si todos sus subárboles excepto las hojas tienen n hijos. comenzando por la que está más a la derecha CODIGO DE PREFIJOS: Un código prefijo es un código.

Para un grupo de símbolos con una distribución de probabilidad uniforme y un número de miembros que es potencia de dos. la codificación aritmética y la codificación LZW normalmente ofrecen mayor capacidad de compresión. La codificación Huffman usa un método específico para elegir la representación de cada símbolo. Este último es útil cuando las probabilidades no se conocen de forma precisa o varían significativamente dentro del flujo de datos. la codificación Huffman es equivalente a una codificación en bloque binaria. Estos dos métodos pueden agrupar un número arbitrario de símbolos para una codificación más eficiente.aún más largas entre palabras. la codificación ASCII. CODIGO DE PREFIJOS DE HUFFMAN En ciencias de la computación y teoría de la información. Aunque la codificación de Huffman es óptima para una codificación símbolo a símbolo dada una distribución de probabilidad. Fue desarrollado por David A. Huffman mientras era estudiante de doctorado en el MIT. . incluso cuando dicho código no se ha producido con el algoritmo de Huffman. la cadena de bits que representa a un símbolo en particular nunca es prefijo de la cadena de bits de un símbolo distinto) que representa los caracteres más comunes usando las cadenas de bits más cortas. donde la tabla ha sido rellenada de una manera específica basándose en la probabilidad estimada de aparición de cada posible valor de dicho símbolo. y viceversa. ayudan a la gente a reconocer donde una letra (o palabra) acaba. su optimalidad a veces puede verse accidentalmente exagerada. y en general se adaptan a las estadísticas de entrada reales. por ejemplo. la codificación Huffman es un algoritmo usado para compresión de datos. Huffman fue capaz de diseñar el método de compresión más eficiente de este tipo: ninguna representación alternativa de un conjunto de símbolos de entrada produce una salida media más pequeña cuando las frecuencias de los símbolos coinciden con las usadas para crear el código. que da lugar a un código prefijo (es decir. Por ejemplo. y publicado en "A Method for the Construction of Minimum-Redundancy Codes". La codificación Huffman es un método para crear códigos prefijo tan extendido que el término "codificación Huffman" es ampliamente usado como sinónimo de "código prefijo". El término se refiere al uso de una tabla de códigos de longitud variable para codificar un determinado símbolo (como puede ser un caracter en un archivo). y donde comienza la siguiente. Posteriormente se encontró un método para llevar esto a cabo en un tiempo lineal si las probabilidades de los símbolos de entrada (también conocidas como "pesos") están ordenadas.