Estructura de Datos.. Pilas. Características: –LIFO (Last in first Out). –Parte Siempre en 0....
-
Upload
manuela-martin-ferreyra -
Category
Documents
-
view
222 -
download
0
Transcript of Estructura de Datos.. Pilas. Características: –LIFO (Last in first Out). –Parte Siempre en 0....
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
•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
•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.
Colas.
• Características:– FIFO (First in first Out).– El inicio no es siempre el mismo.
• Necesito:– Inicio– Final (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
•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
•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.
Lista Enlazada Simple.
• Características:– Push y Pop donde sea– Trabaja con punteros.
• Necesito:– Inicio– Final– Blancos
•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
•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
•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.
Listas Circulares.
• Características:– Pueden Ser Fifo o Lifo.– Es similar a listas simples pero el último
apunta al primero.
• Necesito:– Inicio– Blancos
•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.
•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
•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
•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
Listas Enlazadas Dobles.
• Características:– No tiene orden de inserción o borrado.– Trabaja con punteros
• Necesito:– Inicio– Blancos– Último
•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
•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
•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
•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.