Estructura de Datos.. Pilas. Características: –LIFO (Last in first Out). –Parte Siempre en 0....

23
Estructura de Datos.

Transcript of Estructura de Datos.. Pilas. Características: –LIFO (Last in first Out). –Parte Siempre en 0....

Page 1: Estructura de Datos.. Pilas. Características: –LIFO (Last in first Out). –Parte Siempre en 0. Necesito: –Ultimo (Top)

Estructura de Datos.

Page 2: Estructura de Datos.. Pilas. Características: –LIFO (Last in first Out). –Parte Siempre en 0. Necesito: –Ultimo (Top)

Pilas.

• Características:– LIFO (Last in first Out).– Parte Siempre en 0.

• Necesito:– Ultimo (Top)

Page 3: Estructura de Datos.. Pilas. Características: –LIFO (Last in first Out). –Parte Siempre en 0. Necesito: –Ultimo (Top)

•Diagrama PUSH.

Datos Top

0

2

3

4

5

6

7

1

0

• Primero Guardo El Dato

dato• Y luego actualizo el último

1

Page 4: Estructura de Datos.. Pilas. Características: –LIFO (Last in first Out). –Parte Siempre en 0. Necesito: –Ultimo (Top)

•Diagrama POP.

Datos Top

0

2

3

4

5

6

7

1

3

•Sólo debo decir que el último ahora está antes

dato

(para efectos de recorrido el dato borrado ya no existirá)

2

dato

dato

Page 5: Estructura de Datos.. Pilas. Características: –LIFO (Last in first Out). –Parte Siempre en 0. Necesito: –Ultimo (Top)

•Diagrama BUSCAR.

DatosTop

0

2

3

4

5

6

7

15

•Recorro hasta Top 0 hasta que encuentr el elemento

dato1

•Pregunto si es igual a buscado, sino sigo el recorrido

dato2

dato3 buscado

dato3dato4

dato5

=buscado??

•Hasta que lo encuentro o el final.

Page 6: Estructura de Datos.. Pilas. Características: –LIFO (Last in first Out). –Parte Siempre en 0. Necesito: –Ultimo (Top)

Colas.

• Características:– FIFO (First in first Out).– El inicio no es siempre el mismo.

• Necesito:– Inicio– Final (Top)

Page 7: Estructura de Datos.. Pilas. Características: –LIFO (Last in first Out). –Parte Siempre en 0. Necesito: –Ultimo (Top)

•Diagrama PUSH.

Datos Inicio

0

2

3

4

5

6

7

1

0

• Primero Guardo El Dato

dato• Y luego actualizo el final de la cola

1

Final

01

Page 8: Estructura de Datos.. Pilas. Características: –LIFO (Last in first Out). –Parte Siempre en 0. Necesito: –Ultimo (Top)

•Diagrama POP.

Datos

0

2

3

4

5

6

7

1

•Sólo debo decir que el primero ahora está una posicion después

dato

(para efectos de recorrido el dato borrado ya no existirá)

dato

dato

Inicio

01

Final

3

Page 9: Estructura de Datos.. Pilas. Características: –LIFO (Last in first Out). –Parte Siempre en 0. Necesito: –Ultimo (Top)

•Diagrama BUSCAR.

DatosTop

0

2

3

4

5

6

7

15

•Recorro hasta Top o hasta que encuentr el elemento

dato1

•Pregunto si es igual a buscado, sino sigo el recorrido

dato2

dato3 buscado

dato3dato4

dato5

=buscado??

•Hasta que lo encuentro o el final.

Page 10: Estructura de Datos.. Pilas. Características: –LIFO (Last in first Out). –Parte Siempre en 0. Necesito: –Ultimo (Top)

Lista Enlazada Simple.

• Características:– Push y Pop donde sea– Trabaja con punteros.

• Necesito:– Inicio– Final– Blancos

Page 11: Estructura de Datos.. Pilas. Características: –LIFO (Last in first Out). –Parte Siempre en 0. Necesito: –Ultimo (Top)

•Diagrama PUSH.

Datos Inicio

0

2

3

4

5

6

7

1

100

•Blancos apunta al primer vacío e Inicio apunta a ningún lado

dato•Al insertar guardo el dato en

el primer vacío (si lo hay)Final

100

Blancos

0

Puntero

1

6

5

4

3

2

0

7

•Copio la posicion del primer vacío al final

•De ser necesario apunto inicio a la lista, sino apunto al

que corresponda

0

0

•Y actualizo el primer Blancos

•Aviso que el dato es el último

100

1

Page 12: Estructura de Datos.. Pilas. Características: –LIFO (Last in first Out). –Parte Siempre en 0. Necesito: –Ultimo (Top)

•Diagrama POP.

Datos

0

2

3

4

5

6

7

1

•Sólo debo decir que el primero ahora está una posicion después

dato

(para efectos de recorrido el dato borrado ya no existirá)

dato

dato

Inicio

01

Final

3

Page 13: Estructura de Datos.. Pilas. Características: –LIFO (Last in first Out). –Parte Siempre en 0. Necesito: –Ultimo (Top)

•Diagrama BUSCAR.

DatosTop

0

2

3

4

5

6

7

15

•Recorro hasta Top o hasta que encuentro el elemento

dato1

•Pregunto si es igual a buscado, sino sigo el recorrido

dato2

dato3 buscado

dato3dato4

dato5

=buscado??

•Hasta que lo encuentro o el final.

Page 14: Estructura de Datos.. Pilas. Características: –LIFO (Last in first Out). –Parte Siempre en 0. Necesito: –Ultimo (Top)

Listas Circulares.

• Características:– Pueden Ser Fifo o Lifo.– Es similar a listas simples pero el último

apunta al primero.

• Necesito:– Inicio– Blancos

Page 15: Estructura de Datos.. Pilas. Características: –LIFO (Last in first Out). –Parte Siempre en 0. Necesito: –Ultimo (Top)

•Diagrama PUSH.

Datos Inicio

0

2

3

4

5

6

7

1

100•Blancos apunta al primer vacío e Inicio apunta a ningún lado

dato

•Al insertar guardo el dato en el primer vacío (si lo hay)

Blancos

0

Puntero

1

6

5

4

3

2

0

7

•De ser necesario apunto inicio a la lista, sino apunto al

que corresponda

0

•Y actualizo el primer Blancos

•Aviso que el dato es el último

100

1

•El último apunta al primero (eso lo hace circular), lo demás es igual a la lista enlazada simple.

Page 16: Estructura de Datos.. Pilas. Características: –LIFO (Last in first Out). –Parte Siempre en 0. Necesito: –Ultimo (Top)

•Diagrama POP FIFO.

Datos

0

2

3

4

5

6

7

1

•Para borrar el primero sólo avanzo Inicio

dato

(para efectos de recorrido el dato borrado ya no existirá)

dato

dato

Inicio

00

2

3

4

5

6

7

1

Puntero

1

6

5

100

3

2

0

7

Blancas

4dato

1

Page 17: Estructura de Datos.. Pilas. Características: –LIFO (Last in first Out). –Parte Siempre en 0. Necesito: –Ultimo (Top)

•Diagrama POP LIFO.

Datos

0

2

3

4

5

6

7

1

•Para borrar el último lo apunto al primer Blancas

dato

•Por último marco el último como último

dato

dato

Inicio

00

2

3

4

5

6

7

1

Puntero

1

6

5

100

3

2

0

7

Blancas

4dato

1

•Ahora digo que ese puesto está libre, retrocedo Blancas

43

100

Page 18: Estructura de Datos.. Pilas. Características: –LIFO (Last in first Out). –Parte Siempre en 0. Necesito: –Ultimo (Top)

•Diagrama BUSCAR.

Inicio

0

•Recorro hasta el ultimo o hasta que encuentro el elemento

•Pregunto si es igual a buscado, sino sigo el recorrido

buscado

dato3

=buscado??

•Hasta que lo encuentro o el final.

Datos

0

2

3

4

5

6

7

1

dato1

dato2

dato3

0

2

3

4

5

6

7

1

Puntero

1

6

5

100

3

2

0

7

dato4

Page 19: Estructura de Datos.. Pilas. Características: –LIFO (Last in first Out). –Parte Siempre en 0. Necesito: –Ultimo (Top)

Listas Enlazadas Dobles.

• Características:– No tiene orden de inserción o borrado.– Trabaja con punteros

• Necesito:– Inicio– Blancos– Último

Page 20: Estructura de Datos.. Pilas. Características: –LIFO (Last in first Out). –Parte Siempre en 0. Necesito: –Ultimo (Top)

•Diagrama PUSH.Datos

Inicio

0

2

3

4

5

6

7

1

Blancos

•(Insertaré al final) Primero guardo el datoAnt

dato1

dato2

dato3

Sig

1

6

5

100

3

2

0

7

dato4

Insertar

100

100

100

0

4 dato5

2

1

5

6

7

dato5

•Deberé buscar el último lleno

= lleno??

•Y lo apunto al primer Blancos

4 •Y el ultimo lo apunto al anterior

3•Ahora digo que el último es el último

100

•Actualizo el primer Blancos

5

•Y, por último, digo que es el primer vacío en la tabla

100

Page 21: Estructura de Datos.. Pilas. Características: –LIFO (Last in first Out). –Parte Siempre en 0. Necesito: –Ultimo (Top)

•Diagrama POP el primero.•Para borrar el primero avanzo inicio

Datos

Inicio

0

2

3

4

5

6

7

1

Blancos

Ant

dato1

dato2

dato3

Sig

1

6

3

2

0

7

dato4

100

100

100

0

2

1

6

7

dato5

4

100

5

3

1

•Digo que el segundo ahora es el primero

= lleno??

100

•Busco el último lleno y lo apunto al recién borrado

0

•El recién borrado lo apunto, como anterior, al último

7

•El recién borrado lo apunto a nada (último Blancos)

100

Page 22: Estructura de Datos.. Pilas. Características: –LIFO (Last in first Out). –Parte Siempre en 0. Necesito: –Ultimo (Top)

•Diagrama POP cualquiera.•El último Blanco lo linkeo al que se va a borrar

•El siguiente al que se borrará lo señalo al anterior

1

•El anterior al que se va a borrar apunta al que viene del que se va a borrar

Datos

Inicio

0

2

3

4

5

6

7

1

Blancos

Ant

dato1

dato2

dato3

Sig

1

6

3

2

0

7

dato4

100

100

100

0

2

1

6

7

dato5

4

100

5

3

Pos a borrar3

3

4

2•El borrado lo linkeo, anterior, al último Blancos

7

•Y lo señalo como último de Blancos

100

Page 23: Estructura de Datos.. Pilas. Características: –LIFO (Last in first Out). –Parte Siempre en 0. Necesito: –Ultimo (Top)

•Diagrama BUSCAR.Datos

Inicio

0

2

3

4

5

6

7

1

Blancos

Ant

dato1

dato2

dato3

Sig

1

6

3

2

0

7

dato4

Buscado

100

100

0

Dato3

2

1

6

7

dato5

4

3 100

5

100

•Recorro hasta el ultimo o hasta que encuentro el elemento

•Pregunto si es igual a buscado, sino sigo el recorrido

=buscado??

•Hasta que lo encuentro o el final.