240 likes | 492 Views
Estructura de Datos. Pilas. Características: LIFO (Last in first Out). Parte Siempre en 0. Necesito: Ultimo (Top). Diagrama PUSH . Datos. Top. Primero Guardo El Dato. 0. 0. 1. dato. Y luego actualizo el último. 1. 2. 3. 4. 5. 6. 7. Diagrama POP . Datos. Top.
E N D
Pilas. • Características: • LIFO (Last in first Out). • Parte Siempre en 0. • Necesito: • Ultimo (Top)
Diagrama PUSH. Datos Top • Primero Guardo El Dato 0 0 1 dato • Y luego actualizo el último 1 2 3 4 5 6 7
Diagrama POP. Datos Top • Sólo debo decir que el último ahora está antes 0 dato 2 3 (para efectos de recorrido el dato borrado ya no existirá) 1 dato 2 dato 3 4 5 6 7
Diagrama BUSCAR. Datos • Recorro hasta Top 0 hasta que encuentr el elemento Top 0 dato1 =buscado?? 5 • Pregunto si es igual a buscado, sino sigo el recorrido 1 dato2 2 dato3 buscado dato3 3 dato4 • Hasta que lo encuentro o el final. 4 dato5 5 6 7
Colas. • Características: • FIFO (First in first Out). • El inicio no es siempre el mismo. • Necesito: • Inicio • Final (Top)
Diagrama PUSH. Datos Inicio • Primero Guardo El Dato 0 1 0 dato • Y luego actualizo el final de la cola 1 Final 2 1 0 3 4 5 6 7
Diagrama POP. Datos Inicio • Sólo debo decir que el primero ahora está una posicion después 0 1 0 dato (para efectos de recorrido el dato borrado ya no existirá) 1 dato Final 2 dato 3 3 4 5 6 7
Diagrama BUSCAR. Datos • Recorro hasta Top o hasta que encuentr el elemento Top 0 dato1 =buscado?? 5 • Pregunto si es igual a buscado, sino sigo el recorrido 1 dato2 2 dato3 buscado dato3 3 dato4 • Hasta que lo encuentro o el final. 4 dato5 5 6 7
Lista Enlazada Simple. • Características: • Push y Pop donde sea • Trabaja con punteros. • Necesito: • Inicio • Final • Blancos
Diagrama PUSH. Datos Puntero Inicio • Blancos apunta al primer vacío e Inicio apunta a ningún lado 0 0 dato 100 1 100 • Al insertar guardo el dato en el primer vacío (si lo hay) 1 2 Final 2 3 100 0 • De ser necesario apunto inicio a la lista, sino apunto al que corresponda 3 4 4 5 • Copio la posicion del primer vacío al final Blancos 5 6 0 1 • Aviso que el dato es el último 6 7 7 0 • Y actualizo el primer Blancos
Diagrama POP. Datos Inicio • Sólo debo decir que el primero ahora está una posicion después 0 1 0 dato (para efectos de recorrido el dato borrado ya no existirá) 1 dato Final 2 dato 3 3 4 5 6 7
Diagrama BUSCAR. Datos • Recorro hasta Top o hasta que encuentro el elemento Top 0 dato1 =buscado?? 5 • Pregunto si es igual a buscado, sino sigo el recorrido 1 dato2 2 dato3 buscado dato3 3 dato4 • Hasta que lo encuentro o el final. 4 dato5 5 6 7
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. • El último apunta al primero (eso lo hace circular), lo demás es igual a la lista enlazada simple. Datos Puntero Inicio 0 0 dato 100 1 100 • Blancos apunta al primer vacío e Inicio apunta a ningún lado 1 2 2 Blancos 3 • Al insertar guardo el dato en el primer vacío (si lo hay) 0 1 3 4 4 5 • De ser necesario apunto inicio a la lista, sino apunto al que corresponda 5 6 • Aviso que el dato es el último 6 7 7 0 • Y actualizo el primer Blancos
Diagrama POP FIFO. Datos Puntero Inicio • Para borrar el primero sólo avanzo Inicio 0 0 0 dato 1 1 (para efectos de recorrido el dato borrado ya no existirá) 1 1 dato 2 Blancas 2 2 dato 3 4 3 3 dato 100 4 4 5 5 5 6 6 6 7 7 7 0
Diagrama POP LIFO. 1 Datos Puntero Inicio • Para borrar el último lo apunto al primer Blancas 0 0 0 dato 1 • Ahora digo que ese puesto está libre, retrocedo Blancas 1 1 dato 2 Blancas 2 2 dato 3 100 • Por último marco el último como último 3 4 3 3 dato 100 4 4 4 5 5 5 6 6 6 7 7 7 0
Diagrama BUSCAR. Datos Puntero • Recorro hasta el ultimo o hasta que encuentro el elemento 0 0 dato1 1 =buscado?? • Pregunto si es igual a buscado, sino sigo el recorrido 1 1 dato2 2 2 2 dato3 3 3 3 dato4 100 • Hasta que lo encuentro o el final. Inicio 4 4 5 0 5 5 6 buscado 6 6 7 dato3 7 7 0
Listas Enlazadas Dobles. • Características: • No tiene orden de inserción o borrado. • Trabaja con punteros • Necesito: • Inicio • Blancos • Último
Diagrama PUSH. • (Insertaré al final) Primero guardo el dato Datos Ant Sig • Deberé buscar el último lleno 0 1 dato1 100 = lleno?? 1 0 2 dato2 • Y lo apunto al primer Blancos 2 3 dato3 1 • Y el ultimo lo apunto al anterior 3 100 dato4 2 4 4 dato5 100 3 100 5 • Ahora digo que el último es el último 5 6 100 5 6 6 7 • Actualizo el primer Blancos 7 7 100 • Y, por último, digo que es el primer vacío en la tabla Inicio Blancos Insertar 0 4 5 dato5
Diagrama POP el primero. Datos Ant Sig • Para borrar el primero avanzo inicio 0 1 dato1 100 7 100 = lleno?? • Digo que el segundo ahora es el primero 1 100 0 2 dato2 • Busco el último lleno y lo apunto al recién borrado 2 3 dato3 1 3 dato4 2 4 • El recién borrado lo apunto, como anterior, al último 4 dato5 3 100 • El recién borrado lo apunto a nada (último Blancos) 5 6 100 6 6 7 7 7 100 0 Inicio Blancos 0 5 1
Diagrama POP cualquiera. 1 Datos Ant Sig • El último Blanco lo linkeo al que se va a borrar 0 1 dato1 100 • El anterior al que se va a borrar apunta al que viene del que se va a borrar 1 0 2 dato2 2 3 dato3 1 4 • El siguiente al que se borrará lo señalo al anterior 3 dato4 2 7 100 4 • El borrado lo linkeo, anterior, al último Blancos 4 dato5 2 3 100 5 6 100 • Y lo señalo como último de Blancos 6 6 7 3 7 7 100 Inicio Blancos Pos a borrar 0 5 3
Diagrama BUSCAR. Datos Ant Sig • Recorro hasta el ultimo o hasta que encuentro el elemento 0 1 dato1 100 =buscado?? 1 0 • Pregunto si es igual a buscado, sino sigo el recorrido 2 dato2 2 3 dato3 1 • Hasta que lo encuentro o el final. 3 dato4 2 4 4 dato5 3 100 5 6 100 6 6 7 7 7 100 Inicio Blancos Buscado 0 5 Dato3