estructuras de datos abstractos (adts) - cimat.mx alram/comp_algo/  · listas ligadas vs. listas...

Download Estructuras de datos abstractos (ADTs) - cimat.mx alram/comp_algo/  · listas ligadas vs. listas doblemente

Post on 21-Oct-2018

213 views

Category:

Documents

0 download

Embed Size (px)

TRANSCRIPT

  • Alonso Ramirez Manzanares Computacin y Algoritmos 23.02

    Estructuras de datos abstractos (ADTs) Listas

    mat-151

    1

    Thursday, February 23, 17

  • Alonso Ramirez Manzanares Computacin y Algoritmos 23.02

    problema de Josephus

    2

    Thursday, February 23, 17

  • Alonso Ramirez Manzanares Computacin y Algoritmos 23.02

    problema de Josephus

    Hay n personas paradas en circulo esperando para ser ejecutadas. Despus de ser ejecutado el primer hombre (el 0), saltan a k-1 personas, y la k-sima persona es ejecutada.

    2

    Thursday, February 23, 17

  • Alonso Ramirez Manzanares Computacin y Algoritmos 23.02

    problema de Josephus

    Hay n personas paradas en circulo esperando para ser ejecutadas. Despus de ser ejecutado el primer hombre (el 0), saltan a k-1 personas, y la k-sima persona es ejecutada.

    El proceso de ejecucin continua alrededor del crculo hasta que la ltima persona es liberada.

    2

    Thursday, February 23, 17

  • Alonso Ramirez Manzanares Computacin y Algoritmos 23.02

    problema de Josephus

    Hay n personas paradas en circulo esperando para ser ejecutadas. Despus de ser ejecutado el primer hombre (el 0), saltan a k-1 personas, y la k-sima persona es ejecutada.

    El proceso de ejecucin continua alrededor del crculo hasta que la ltima persona es liberada.

    La identidad de la persona liberada es una funcin de n y k y se conoce como funcin de Josephus.

    2

    Thursday, February 23, 17

  • Alonso Ramirez Manzanares Computacin y Algoritmos 23.02

    problema de Josephus

    Hay n personas paradas en circulo esperando para ser ejecutadas. Despus de ser ejecutado el primer hombre (el 0), saltan a k-1 personas, y la k-sima persona es ejecutada.

    El proceso de ejecucin continua alrededor del crculo hasta que la ltima persona es liberada.

    La identidad de la persona liberada es una funcin de n y k y se conoce como funcin de Josephus.

    Cmo podemos simular (saber) computacionalmente el orden en que las personas sern ejecutadas?

    2

    Thursday, February 23, 17

  • Alonso Ramirez Manzanares Computacin y Algoritmos 23.02

    Problema de Josephus

    3

    Thursday, February 23, 17

  • Alonso Ramirez Manzanares Computacin y Algoritmos 23.02

    Problema de Josephus

    3

    Thursday, February 23, 17

  • Alonso Ramirez Manzanares Computacin y Algoritmos 23.02

    Problema de Josephus

    3

    Thursday, February 23, 17

  • Alonso Ramirez Manzanares Computacin y Algoritmos 23.02

    Problema de Josephus

    3

    Thursday, February 23, 17

  • Alonso Ramirez Manzanares Computacin y Algoritmos 23.02

    Problema de Josephus

    3

    Thursday, February 23, 17

  • Alonso Ramirez Manzanares Computacin y Algoritmos 23.02

    Problema de Josephus

    3

    Thursday, February 23, 17

  • Alonso Ramirez Manzanares Computacin y Algoritmos 23.02

    Problema de Josephus

    3

    Thursday, February 23, 17

  • Alonso Ramirez Manzanares Computacin y Algoritmos 23.02

    Problema de Josephus

    3

    Thursday, February 23, 17

  • Alonso Ramirez Manzanares Computacin y Algoritmos 23.02

    Problema de Josephus

    3

    Thursday, February 23, 17

  • Alonso Ramirez Manzanares Computacin y Algoritmos 23.02

    Problema de Josephus

    3

    Thursday, February 23, 17

  • Alonso Ramirez Manzanares Computacin y Algoritmos 23.02

    Problema de Josephus

    % ./josephus 9 5mueren 5 1 7 4 3 6 9 2 sobrevive: 8

    3

    Thursday, February 23, 17

  • Alonso Ramirez Manzanares Computacin y Algoritmos 23.02

    arreglos vs. listas ligadas

    4

    Thursday, February 23, 17

  • Alonso Ramirez Manzanares Computacin y Algoritmos 23.02

    Cul estructura es la ms adaptada para la criba de Eratstenes ( encontrar nmeros primos menores a N ) y para el problema de Josephus ?

    arreglos vs. listas ligadas

    4

    Thursday, February 23, 17

  • Alonso Ramirez Manzanares Computacin y Algoritmos 23.02

    Cul estructura es la ms adaptada para la criba de Eratstenes ( encontrar nmeros primos menores a N ) y para el problema de Josephus ?

    en la criba de Eratstenes necesitamos acceder rpidamente a los elementos del arreglo para que el algoritmo sea eficiente.

    arreglos vs. listas ligadas

    4

    Thursday, February 23, 17

  • Alonso Ramirez Manzanares Computacin y Algoritmos 23.02

    Cul estructura es la ms adaptada para la criba de Eratstenes ( encontrar nmeros primos menores a N ) y para el problema de Josephus ?

    en la criba de Eratstenes necesitamos acceder rpidamente a los elementos del arreglo para que el algoritmo sea eficiente.

    en el problema de Josephus necesitamos eliminar elementos rpidamente para que el algoritmo sea eficiente.

    arreglos vs. listas ligadas

    4

    Thursday, February 23, 17

  • Alonso Ramirez Manzanares Computacin y Algoritmos 23.02

    Cul estructura es la ms adaptada para la criba de Eratstenes ( encontrar nmeros primos menores a N ) y para el problema de Josephus ?

    en la criba de Eratstenes necesitamos acceder rpidamente a los elementos del arreglo para que el algoritmo sea eficiente.

    en el problema de Josephus necesitamos eliminar elementos rpidamente para que el algoritmo sea eficiente.

    al elegir una estructura debemos estar conscientes de los efectos de esta eleccin en la eficiencia de los algoritmos que procesan estos datos.

    arreglos vs. listas ligadas

    4

    Thursday, February 23, 17

  • Alonso Ramirez Manzanares Computacin y Algoritmos 23.02

    Cul estructura es la ms adaptada para la criba de Eratstenes ( encontrar nmeros primos menores a N ) y para el problema de Josephus ?

    en la criba de Eratstenes necesitamos acceder rpidamente a los elementos del arreglo para que el algoritmo sea eficiente.

    en el problema de Josephus necesitamos eliminar elementos rpidamente para que el algoritmo sea eficiente.

    al elegir una estructura debemos estar conscientes de los efectos de esta eleccin en la eficiencia de los algoritmos que procesan estos datos.

    esta combinacin datos/algoritmos es el corazn del diseo de algoritmos.

    arreglos vs. listas ligadas

    4

    Thursday, February 23, 17

  • Alonso Ramirez Manzanares Computacin y Algoritmos 23.02

    operaciones con listas

    recorrer una lista:

    recorrer un arreglo:

    5

    Thursday, February 23, 17

  • Alonso Ramirez Manzanares Computacin y Algoritmos 23.02

    Limitaciones de las listas ligadas?

    cul nodo podemos borrar?

    Thursday, February 23, 17

  • Alonso Ramirez Manzanares Computacin y Algoritmos 23.02

    listas doblemente ligadas

    6

    Thursday, February 23, 17

  • Alonso Ramirez Manzanares Computacin y Algoritmos 23.02

    listas doblemente ligadas

    se pueden recorrer en ambas direcciones incluyendo adems un e.Prev que es un apuntador al elemento previo de la lista.

    6

    Thursday, February 23, 17

  • Alonso Ramirez Manzanares Computacin y Algoritmos 23.02

    listas doblemente ligadas

    se pueden recorrer en ambas direcciones incluyendo adems un e.Prev que es un apuntador al elemento previo de la lista.

    e.Prev = null si e es el primer elemento de la lista.

    6

    Thursday, February 23, 17

  • Alonso Ramirez Manzanares Computacin y Algoritmos 23.02

    listas doblemente ligadas

    se pueden recorrer en ambas direcciones incluyendo adems un e.Prev que es un apuntador al elemento previo de la lista.

    e.Prev = null si e es el primer elemento de la lista.

    anlogamente a first se incluye un apuntador last al ltimo elemento de la lista.

    6

    Thursday, February 23, 17

  • Alonso Ramirez Manzanares Computacin y Algoritmos 23.02

    listas doblemente ligadas

    se pueden recorrer en ambas direcciones incluyendo adems un e.Prev que es un apuntador al elemento previo de la lista.

    e.Prev = null si e es el primer elemento de la lista.

    anlogamente a first se incluye un apuntador last al ltimo elemento de la lista.

    el espacio requerido para los links, al igual que el nmero de manipulaciones bsicas para una operacin simple es el doble que en una lista simplemente ligada.

    6

    Thursday, February 23, 17

  • Alonso Ramirez Manzanares Computacin y Algoritmos 23.02

    listas doblemente ligadas: remover nodos

    7

    podemos retirar un nodo cuando la nica informacin que tenemos es un link a este, por ejemplo e.

    Thursday, February 23, 17

  • Alonso Ramirez Manzanares Computacin y Algoritmos 23.02

    listas doblemente ligadas: remover nodos

    7

    podemos retirar un nodo cuando la nica informacin que tenemos es un link a este, por ejemplo e.

    Thursday, February 23, 17

  • Alonso Ramirez Manzanares Computacin y Algoritmos 23.02

    listas doblemente ligadas: remover nodos

    7

Recommended

View more >