manual de estructura de datos - itsa.edu.· listas enlazadas..... 18 3.1 definición ... empecemos

Download Manual de EStructura de Datos - itsa.edu.· LISTAS ENLAZADAS..... 18 3.1 Definición ... Empecemos

Post on 21-Oct-2018

214 views

Category:

Documents

0 download

Embed Size (px)

TRANSCRIPT

  • 1

    MANUAL DE ESTRUCTURA DE DATOS

    Evelio Ramiro Arrieta Torres

    Man

    ual d

    e ES

    truc

    tura

    de

    Dat

    os

    EVELIO ARRIETA Inst

    ituto

    Tecn

    olg

    ico

    De

    Sole

    dad

    Atl

    ntic

    o IT

    SA (9

    58-5

    7393

    )IS

    BN 9

    78-9

    58-5

    9173

    -9-2

  • Introduccin ......................................................................................................... 4

    1. COLAS............................................................................................................... 5

    1.1 Definicin .................................................................................................. 5

    1.2 Operaciones bsicas con colas .................................................................. 6

    1.2.1 Agregar un elemento ........................................................................ 6

    1.2.2 Eliminar un elemento de una cola .................................................... 7

    1.3 Aplicaciones del uso de Colas ................................................................. 10

    1.4 Cola circular ............................................................................................ 10

    1.5 Ejercicios Colas ....................................................................................... 12

    2. PILAS .............................................................................................................. 13

    2.1 Definicin ................................................................................................ 13

    2.2 Operaciones bsicas con pilas ................................................................ 13

    2.2.1 Insercin de elementos .................................................................. 14

    2.2.1.1 Insercin en una pila vaca ..................................................... 14

    2.2.2 Eliminacin en una Pila ................................................................... 15

    2.5 Aplicaciones del uso de Pilas .................................................................. 17

    2.6 Ejercicios con Pilas .................................................................................. 17

    3. LISTAS ENLAZADAS ......................................................................................... 18

    3.1 Definicin ................................................................................................ 18

    3.2 Declaraciones de tipos para manejar listas............................................. 18

    3.3 Operaciones bsicas con listas ................................................................ 19

    3.3.1 Insertar elementos en una lista abierta .......................................... 19

    3.3.2 Eliminar elementos en una lista abierta ......................................... 19

    3.4 LISTAS DOBLEMENTE ENLADAS (Listas dobles) ....................................... 24

    3.4.1 Operaciones bsicas con listas doblemente enlazadas .................. 24

    3.5 Ejercicios con Listas enlazadas ................................................................ 28

    4. Recursividad ................................................................................................... 28

    4.1 Concepto de recursividad. ...................................................................... 28

    4.2 Ejemplos ................................................................................................. 29

    4.3 Uso de la recursividad. ............................................................................ 32

    4.4 Ejercicios ................................................................................................. 34

    5. Arboles ........................................................................................................... 35

    5.1 Definicin ................................................................................................ 35

    5.2 Operaciones bsicas con rboles ............................................................ 36

    5.3 Recorridos por rboles............................................................................ 37

    CON

    TEN

    IDO

  • 5.3.1 Pre-orden .................................................................................................. 37

    5.3.2 In-orden .................................................................................................... 38

    5.3.3 Post-orden ................................................................................................ 38

    5.4 Eliminar nodos en un rbol .......................................................................... 38

    5.5 Arboles ordenados ....................................................................................... 39

    5.6 rboles binarios de bsqueda (ABB) ........................................................... 40

    5.6.1 Definicin .................................................................................................. 40

    5.6.2 Operaciones en ABB ................................................................................. 40

    5.6.3 Buscar un elemento .................................................................................. 41

    5.6.4 Insertar un elemento ................................................................................ 41

    5.6.5 Borrar un elemento .................................................................................. 42

    Ejemplo 1: Borrar un nodo hoja .............................................................................. 43Ejemplo 2: Borrar un nodo rama con intercambio de un nodo hoja. ............................ 43Ejemplo 3: Borrar un nodo rama con intercambio de un nodo rama. .......................... 445.7 EJERCICIOS ................................................................................................... 48

    6. Bibliografa de Referencia .............................................................................. 49

    CON

    TEN

    IDO

  • 4

    Introduccin

    En la prctica, la mayor parte de informacin til no aparece aislada en forma de datos simples, sino que lo hace de forma organizada y estructurada. Los diccionarios, guas, enciclopedias, etc., son colecciones de datos que seran intiles si no estuvieran organizadas de acuerdo con unas determinadas reglas. Adems, tener estructurada la informacin supone ventajas adicionales, al facilitar el acceso y el manejo de los datos. Por ello parece razonable desarrollar la idea de la agrupacin de datos, que tengan un cierto tipo de estructura y organizacin interna.

    La seleccin de una estructura de datos frente a otra, a la hora de programar es una decisin importante, ya que ello influye decisivamente en el algoritmo que vaya a usarse para resolver un determinado problema. El objetivo de este manual no es slo la descripcin de las distintas estructuras, sino tambin la comparacin de las mismas en trminos de utilidad para la programacin.

    Empecemos recordando que un dato de tipo simple, no est compuesto de otras estructuras, que no sean los bits, y que por tanto su representacin sobre el ordenador es directa, sin embargo existen unas operaciones propias de cada tipo, que en cierta manera los caracterizan. Una estructura de datos es, a grandes rasgos, una coleccin de datos (normalmente de tipo simple) que se caracterizan por su organizacin y las operaciones que se definen en ellos. Por tanto, una estructura de datos vendr caracterizada tanto por unas ciertas relaciones entre los datos que la constituyen (ej. el orden de las componentes de un vector de nmeros reales), como por las operaciones posibles en ella. Esto supone que podamos expresar formalmente, mediante un conjunto de reglas, las relaciones y operaciones posibles.

  • 5

    1. COLAS1.1 Definicin

    Una cola es un tipo especial de lista abierta en la que slo se puede insertar nodos en uno de los extremos de la lista y slo se pueden eliminar nodos en el otro. Adems, como sucede con las pilas, las escrituras de datos siempre son inserciones de nodos, y las lecturas siempre eliminan el nodo ledo.

    Este tipo de lista es conocido como lista FIFO (First In First Out), el primero en entrar es el primero en salir.

    El smil cotidiano es una cola para comprar, por ejemplo, las entradas del cine. Los nuevos compradores slo pueden colocarse al final de la cola, y slo el primero de la cola puede comprar la entrada.

    Las colas se representan por listas enlazadas (a) o por arrays (b). Se necesitan dos punteros o variables: frente y final, y la lista o array de n elementos.

    Fuente: Propia

    El nodo tpico para construir colas es el mismo para la construccin de listas:

    struct nodo { int dato; struct nodo *siguiente;}

    Una cola, entonces, es una lista abierta. As que sigue siendo muy importante que el programa nunca pierda el valor del puntero al primer elemento, igual que pasa con las listas abiertas. Adems, debido al funcionamiento de las colas, tambin deberemos mantener un puntero para el ltimo elemento de la cola, que ser el punto donde insertemos nuevos nodos.

    Teniendo en cuenta que las lecturas y escrituras en una cola se hacen siempre en extremos distintos, lo ms fcil ser insertar nodos por el final, a continuacin del nodo que no tiene nodo siguiente, y leerlos desde el principio, hay que recordar que leer un nodo implica eliminarlo de la cola.

    100 48264 119frente

    frente final

    final

    a)

    b)

  • 6

    1.2 Operaciones bsicas con colas

    De nuevo nos encontramos ante una estructura con muy pocas operaciones disponibles. Las colas slo permiten agregar y leer elementos:

    Agregar: Inserta un elemento al fi

Recommended

View more >