SlideShare uma empresa Scribd logo
1 de 15
Baixar para ler offline
Estructuras lineales
Presentar los TAD lineales pila, cola y secuencia
Mostrar la especificación de cada uno de los TAD lineales
Descubrir implementaciones alternativas para cada uno de ellos
Ejemplos de aplicación
AEDI – I.T. Informática de Gestión – Curso 09/10
Estructuras lineales
Contenidos
1. Introducción
2. TAD Pila
2.1. Especificación
2.2. Implementación
2.3. Aplicaciones
3. TAD Cola
3.1. Especificación
3.2. Implementación
3.3. Variantes del TAD Cola
3.4. Aplicaciones
4. Secuencias
4.1. Secuencias por posición
4.2. Iteradores
AEDI – I.T. Informática de Gestión – Curso 09/10
Estructuras lineales
Bibliografía
Goodrich M. y Tamassia R., Data structures and Algorithms in
JAVA 4ª ed. John Wiley & Sons Inc. , 2006 Págs.187-203, 204-
210, 222-228, 231-241, 242-248
Lewis, J. y Chase J. Estructuras de datos con Java. Diseño de
estructuras y algoritmos. 2ª ed. Pearson. Addisson Wesley. 2006
Págs. 152-161, 166-174, 180-182, 193-205
Weiss, Mark Allen, Estructuras de datos en Java: compatible
con JAVA 2, Addisson Wesley. 2000. Págs.139-146, 395-410,
415-427
Liskov, B. y J. Guttag, Program Development in Java:
Abstraction, Specification, and Object-Oriented Design, Addison-
Wesley, 2001. Págs. 125-137
AEDI – I.T. Informática de Gestión – Curso 09/10
Estructuras lineales
Las estructuras lineales son importantes porque aparecen con mucha frecuencia en
situaciones de la vida
Ejemplos: Una cola de clientes de un banco, las instrucciones de un programa, los
caracteres de una cadena o las páginas de un libro
Características:
existe un único elemento, llamado primero,
existe un único elemento, llamado último,
cada elemento, excepto el primero, tiene un único predecesor y
cada elemento, excepto el último, tiene un único sucesor
Operaciones:
crear la estructura vacía,
insertar un elemento,
borrar un elemento y
obtener un elemento
Para definir claramente el comportamiento de la estructura es necesario determinar
en qué posición se inserta un elemento nuevo y qué elemento se borra o se
obtiene.
Principales estructuras lineales: pilas, colas y secuencias.
AEDI – I.T. Informática de Gestión – Curso 09/10
TAD Pila
Contenedor de objetos que son insertados y eliminados
de acuerdo con el principio de que el último en entrar es
el primero en salir (LIFO - Last In First Out)
Los elementos se insertan de uno en uno (push - apilar)
Los elementos se sacan en orden inverso al cual se han
insertado (pop - desapilar)
El único elemento que se puede observar es el último
insertado (tope o cima)
Entrar Salir
a1
a2
a3
Tope de
la pila
AEDI – I.T. Informática de Gestión – Curso 09/10
TAD Pila
Especificación
public class Pila <E> {
// características:
// Es una secuencia de elementos donde el último en entrar es el primero en ser eliminado
// Los objetos son modificables.
public Pila <E> ( )
// Produce: una pila vacía
public int tamaño()
// Produce: devuelve el número de elementos de la pila
public boolean esVacio()
// Produce: cierto si la pila está vacía. Falso en otro caso
public E top() throws PilaVaciaExcepcion
// Produce: si la pila está vacía lanza la excepción PilaVaciaExcepcion,
// sino devuelve el objeto más recientemente introducido
public E pop() throws PilaVaciaExcepcion
// Modifica: this
// Produce: si la pila está vacía lanza la excepción PilaVaciaExcepcion,
// sino devuelve el objeto más recientemente introducido y lo suprime de la pila
public void push (E elemento)
// Modifica: this
// Produce: añade un objeto a la pila, pasando a ser el nuevo tope
}
AEDI – I.T. Informática de Gestión – Curso 09/10
TAD Pila
Ejemplo de uso del TAD Pila
public class PruebaPila{
public static void main (String []args){
Pila<Integer> p = new Pila<Integer>();
for (int i=1; i<10;i++)
p.push(i);
System.out.println("Los elementos son: ");
while(!p.esVacio())
System.out.println(p.pop());
}
}
AEDI – I.T. Informática de Gestión – Curso 09/10
TAD Pila
Aplicaciones en la vida real:
Navegadores en Internet almacenan en una pila las direcciones
de los sitios más recientemente visitados.
Los editores de texto proporcionan normalmente un botón
deshacer que cancela las operaciones de edición recientes y
restablece el estado anterior del documento.
Aplicaciones en programación
Las pilas son una estructura de datos muy usada como
estructura auxiliar en diversos algoritmos y esquemas de
programación. Los casos más representativos son:
Palíndromo, cambio de base, etc
Solitario, Laberinto, etc. (back tracking).
Evaluación de expresiones aritméticas, conversión de notaciones
(postfija, prefija, infija)...
Recursión.
AEDI – I.T. Informática de Gestión – Curso 09/10
TAD Pila
Implementación del TAD Pila
Paso 1: Definición interfaz
public interface Pila<E>{
public int tamaño();
public boolean esVacio();
public E top() throws PilaVaciaExcepcion;
public void push (E elemento);
public E pop() throws PilaVaciaExcepcion;
}
Paso 2: Clase implemente la interfaz
Mediante arrays
public class ArrayPila<E> implements Pila<E>
Mediante listas enlazadas genéricas
public class EnlazadaPila<E> implements Pila<E>
AEDI – I.T. Informática de Gestión – Curso 09/10
TAD Pila
public class PilaVaciaExcepcion extends RuntimeException{
public PilaVaciaExcepcion (){
super();
}
public PilaVaciaExcepcion (String mensaje){
super(mensaje);
}
}
AEDI – I.T. Informática de Gestión – Curso 09/10
TAD Pila
public class ArrayPila<E> implements Pila<E>{
public static final int CAPACIDAD_POR_DEFECTO=10;
private E [] elementos;
private int tope;
Ventaja: todas las operaciones tienen coste temporal constante O(1)
Problema: pila llena
Solución:
método privado duplicarPila() -> expansión dinámica del vector
un nuevo tipo de excepción, PilaLlenaExcepcion
elementos
Tope de
la pila
a1 a2 a3 a4 ... at
0 1 2 3 tope N-1
Representación
AEDI – I.T. Informática de Gestión – Curso 09/10
TAD Pila
Representación
public class EnlazadaPila<E> implements Pila<E> {
private Nodo<E> tope;
private int contador;
Ventajas:
todas las operaciones tienen coste temporal constante O(1)
no hay limitaciones de tamaño
Tope de
la pila
AEDI – I.T. Informática de Gestión – Curso 09/10
TAD Pila
public class Nodo<E> {
private E elemento; //referencia al elemento del nodo
private Nodo<E> sig; //referencia al siguiente nodo de la lista
public Nodo(){
//Produce: crea un nodo con valor null en sus referencias al elemento y al siguiente nodo
this(null,null);
}
public Nodo(E e, Nodo<E> n){
// Produce: un objeto Nodo con el elemento y siguiente nodo que se le pasa como parámetro
elemento=e;
sig=n;
}
public void setElemento(E e){
// Modifica: this
// Produce: modifica el atributo elemento de this
elemento = e;
}
public void setSig(Nodo<E> n){
// Modifica: this
// Produce: modifica el atributo sig de this
sig = n;
}
public E getElemento(){
// Produce: devuelve el atributo elemento de this
return elemento;
}
public Nodo<E> getSig(){
// Produce: devuelve el atributo sig de this
return sig;
}
}
AEDI – I.T. Informática de Gestión – Curso 09/10
TAD Pila
public class EnlazadaPila<E> implements Pila<E> {
private Nodo<E> tope;
private int contador;
public EnlazadaPila(){
tope=null;
contador=0;
}
public int tamaño(){
return contador;
}
public boolean esVacio(){
return tope==null;
}
public E top() throws PilaVaciaExcepcion{
if (esVacio()) throw new PilaVaciaExcepcion("top: Pila Vacia");
return tope.getElemento();
}
public void push (E e){
Nodo<E> n=new Nodo<E>(e,tope);
tope=n;
contador++;
}
public E pop() throws PilaVaciaExcepcion{
if (esVacio()) throw new PilaVaciaExcepcion("pop: Pila Vacia");
E e=tope.getElemento();
tope=tope.getSig();
contador--;
return e;
}
}
AEDI – I.T. Informática de Gestión – Curso 09/10
TAD Pila
public interface Pila<E>{
public int tamaño();
public boolean esVacio();
public E top() throws PilaVaciaExcepcion;
public void push (E elemento);
public E pop() throws PilaVaciaExcepcion;
}
public class PilaVaciaExcepcion{
public PilaVaciaExcepcion(){
…
}
public PilaVaciaExcepcion(String mensaje){
…
}
}
public class ArrayPila<E> implements Pila<E>{
public static final int CAPACIDAD_POR_DEFECTO=10;
private E [] elementos;
private int tope;
public ArrayPila(){
// inicializa los atributos de la representación
}
//implementación operaciones de la interfaz
}
public class EnlazadaPila<E> implements Pila<E>{
private Nodo<E> tope;
private int contador;
public EnlazadaPila(){
// inicializa los atributos de la representación
}
//implementación operaciones de la interfaz
}
public class Nodo<E>{
private E elemento;
private Nodo<E> sig;
public Nodo(){
---
}
//resto operaciones
}

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

Estructura de datos I pilas
Estructura de datos I pilasEstructura de datos I pilas
Estructura de datos I pilas
 
Fila,pila y cola ..
Fila,pila y cola ..Fila,pila y cola ..
Fila,pila y cola ..
 
Estructura de datos: lista, pilas y colas
Estructura de datos: lista, pilas y colasEstructura de datos: lista, pilas y colas
Estructura de datos: lista, pilas y colas
 
Apuntadores y listas
Apuntadores y listasApuntadores y listas
Apuntadores y listas
 
COLAS
COLASCOLAS
COLAS
 
Listas
ListasListas
Listas
 
Listas,pilas&colas yorka
Listas,pilas&colas yorkaListas,pilas&colas yorka
Listas,pilas&colas yorka
 
Lista,pilas y columnas
Lista,pilas y columnasLista,pilas y columnas
Lista,pilas y columnas
 
Estructura de datos listas, pilas y colas
Estructura de datos listas, pilas y colasEstructura de datos listas, pilas y colas
Estructura de datos listas, pilas y colas
 
Colas en programacion
Colas en programacionColas en programacion
Colas en programacion
 
Listas y Pilas
Listas y PilasListas y Pilas
Listas y Pilas
 
Estructura de datos
Estructura de datosEstructura de datos
Estructura de datos
 
Presentacion pilas lista y colas
Presentacion pilas lista y colas  Presentacion pilas lista y colas
Presentacion pilas lista y colas
 
Tipos de listas en estructura de datos
Tipos de listas en estructura de datosTipos de listas en estructura de datos
Tipos de listas en estructura de datos
 
Pila dinamica y pila estatica
Pila dinamica y pila estaticaPila dinamica y pila estatica
Pila dinamica y pila estatica
 
Pilas y Colas
Pilas y ColasPilas y Colas
Pilas y Colas
 
Presentacion de Listas, Pilas y Colas
Presentacion de Listas, Pilas y ColasPresentacion de Listas, Pilas y Colas
Presentacion de Listas, Pilas y Colas
 
Pilas, colas, y listas estructura de datos
Pilas, colas, y listas estructura de datosPilas, colas, y listas estructura de datos
Pilas, colas, y listas estructura de datos
 
Arboles y Colas de Prioridad en Java
Arboles y Colas de Prioridad en JavaArboles y Colas de Prioridad en Java
Arboles y Colas de Prioridad en Java
 
Pilas como estructura de datos..
Pilas como estructura de datos..Pilas como estructura de datos..
Pilas como estructura de datos..
 

Semelhante a Estructuras lineales (20)

Unidad iii Pilas y colas
Unidad iii Pilas y colasUnidad iii Pilas y colas
Unidad iii Pilas y colas
 
Unidad iii pilas y colas
Unidad iii pilas y colasUnidad iii pilas y colas
Unidad iii pilas y colas
 
Listas pilas colas
Listas pilas colasListas pilas colas
Listas pilas colas
 
Listas, pilas & colas
Listas, pilas & colasListas, pilas & colas
Listas, pilas & colas
 
Listas Pilas Colas
Listas Pilas ColasListas Pilas Colas
Listas Pilas Colas
 
C++
C++C++
C++
 
Programación en c++
Programación en c++Programación en c++
Programación en c++
 
Cplus
CplusCplus
Cplus
 
S6-EDD-3.2 Pilas y colas
S6-EDD-3.2 Pilas y colasS6-EDD-3.2 Pilas y colas
S6-EDD-3.2 Pilas y colas
 
Estructura de datos.vrb
Estructura de datos.vrbEstructura de datos.vrb
Estructura de datos.vrb
 
Estructura de datos.vrb
Estructura de datos.vrbEstructura de datos.vrb
Estructura de datos.vrb
 
Estructura de datos.vrb
Estructura de datos.vrbEstructura de datos.vrb
Estructura de datos.vrb
 
Estructura de datos.vrb
Estructura de datos.vrbEstructura de datos.vrb
Estructura de datos.vrb
 
2- TDA Listas
2- TDA Listas2- TDA Listas
2- TDA Listas
 
Implementacion
ImplementacionImplementacion
Implementacion
 
Pilas
PilasPilas
Pilas
 
P2C2 Introducción a JEE5
P2C2 Introducción a JEE5P2C2 Introducción a JEE5
P2C2 Introducción a JEE5
 
Pilas
PilasPilas
Pilas
 
Pilas
PilasPilas
Pilas
 
Estructura de datos listas, pilas y colas
Estructura de datos listas, pilas y colasEstructura de datos listas, pilas y colas
Estructura de datos listas, pilas y colas
 

Mais de Cecilia Loeza

10 Adivinanzas de animales, elementos de la naturaleza, objetos, frutas, verd...
10 Adivinanzas de animales, elementos de la naturaleza, objetos, frutas, verd...10 Adivinanzas de animales, elementos de la naturaleza, objetos, frutas, verd...
10 Adivinanzas de animales, elementos de la naturaleza, objetos, frutas, verd...Cecilia Loeza
 
Funciones hiperbólicas
Funciones hiperbólicasFunciones hiperbólicas
Funciones hiperbólicasCecilia Loeza
 
Sistemas lineales tablas
Sistemas lineales tablasSistemas lineales tablas
Sistemas lineales tablasCecilia Loeza
 
Fourier y sus coeficientes Cañada
Fourier y sus coeficientes CañadaFourier y sus coeficientes Cañada
Fourier y sus coeficientes CañadaCecilia Loeza
 
Variable de frecuencia compleja
Variable de frecuencia complejaVariable de frecuencia compleja
Variable de frecuencia complejaCecilia Loeza
 
Movimiento ondulatorio
Movimiento ondulatorioMovimiento ondulatorio
Movimiento ondulatorioCecilia Loeza
 
Los sistemas de informacion en la empresa nota tecnica - carlos suarez rey
Los sistemas de informacion en la empresa   nota tecnica - carlos suarez reyLos sistemas de informacion en la empresa   nota tecnica - carlos suarez rey
Los sistemas de informacion en la empresa nota tecnica - carlos suarez reyCecilia Loeza
 
Temas selectos de estructuras de datos
Temas selectos de estructuras de datosTemas selectos de estructuras de datos
Temas selectos de estructuras de datosCecilia Loeza
 
ESTADÍSTICA DESCRIPTIVA E INFERENCIAL I
ESTADÍSTICA DESCRIPTIVA E INFERENCIAL IESTADÍSTICA DESCRIPTIVA E INFERENCIAL I
ESTADÍSTICA DESCRIPTIVA E INFERENCIAL ICecilia Loeza
 
Potencial eléctricoPotencial electrico
Potencial eléctricoPotencial electricoPotencial eléctricoPotencial electrico
Potencial eléctricoPotencial electricoCecilia Loeza
 
Estadística descriptiva
Estadística descriptivaEstadística descriptiva
Estadística descriptivaCecilia Loeza
 
Matemáticas discretas
Matemáticas discretasMatemáticas discretas
Matemáticas discretasCecilia Loeza
 
Fundamentos básicos telecomunicaciones
Fundamentos básicos telecomunicacionesFundamentos básicos telecomunicaciones
Fundamentos básicos telecomunicacionesCecilia Loeza
 

Mais de Cecilia Loeza (20)

10 Adivinanzas de animales, elementos de la naturaleza, objetos, frutas, verd...
10 Adivinanzas de animales, elementos de la naturaleza, objetos, frutas, verd...10 Adivinanzas de animales, elementos de la naturaleza, objetos, frutas, verd...
10 Adivinanzas de animales, elementos de la naturaleza, objetos, frutas, verd...
 
Java
JavaJava
Java
 
Funciones hiperbólicas
Funciones hiperbólicasFunciones hiperbólicas
Funciones hiperbólicas
 
Sistemas lineales tablas
Sistemas lineales tablasSistemas lineales tablas
Sistemas lineales tablas
 
Fourier y sus coeficientes Cañada
Fourier y sus coeficientes CañadaFourier y sus coeficientes Cañada
Fourier y sus coeficientes Cañada
 
Variable de frecuencia compleja
Variable de frecuencia complejaVariable de frecuencia compleja
Variable de frecuencia compleja
 
Integral de fourier
Integral de fourierIntegral de fourier
Integral de fourier
 
Resistores normales
Resistores normalesResistores normales
Resistores normales
 
Movimiento ondulatorio
Movimiento ondulatorioMovimiento ondulatorio
Movimiento ondulatorio
 
Los sistemas de informacion en la empresa nota tecnica - carlos suarez rey
Los sistemas de informacion en la empresa   nota tecnica - carlos suarez reyLos sistemas de informacion en la empresa   nota tecnica - carlos suarez rey
Los sistemas de informacion en la empresa nota tecnica - carlos suarez rey
 
Temas selectos de estructuras de datos
Temas selectos de estructuras de datosTemas selectos de estructuras de datos
Temas selectos de estructuras de datos
 
ESTADÍSTICA DESCRIPTIVA E INFERENCIAL I
ESTADÍSTICA DESCRIPTIVA E INFERENCIAL IESTADÍSTICA DESCRIPTIVA E INFERENCIAL I
ESTADÍSTICA DESCRIPTIVA E INFERENCIAL I
 
Árboles binarios
Árboles binariosÁrboles binarios
Árboles binarios
 
Autómatas
AutómatasAutómatas
Autómatas
 
Potencial eléctricoPotencial electrico
Potencial eléctricoPotencial electricoPotencial eléctricoPotencial electrico
Potencial eléctricoPotencial electrico
 
Estadística descriptiva
Estadística descriptivaEstadística descriptiva
Estadística descriptiva
 
Combinatoria
CombinatoriaCombinatoria
Combinatoria
 
Ecologia 3ra ed
Ecologia 3ra edEcologia 3ra ed
Ecologia 3ra ed
 
Matemáticas discretas
Matemáticas discretasMatemáticas discretas
Matemáticas discretas
 
Fundamentos básicos telecomunicaciones
Fundamentos básicos telecomunicacionesFundamentos básicos telecomunicaciones
Fundamentos básicos telecomunicaciones
 

Último

Unidad 00 CIENCIA Y TECNOLOGÍA. sesión de bienvenidadocx
Unidad 00 CIENCIA Y TECNOLOGÍA. sesión de bienvenidadocxUnidad 00 CIENCIA Y TECNOLOGÍA. sesión de bienvenidadocx
Unidad 00 CIENCIA Y TECNOLOGÍA. sesión de bienvenidadocxOlgaLuzFloresGonzale
 
IMPORTANCIA DE LA NUTRICIÓN PARA LA VIDA Y LA SALUD.pptx
IMPORTANCIA DE LA NUTRICIÓN PARA LA VIDA Y LA SALUD.pptxIMPORTANCIA DE LA NUTRICIÓN PARA LA VIDA Y LA SALUD.pptx
IMPORTANCIA DE LA NUTRICIÓN PARA LA VIDA Y LA SALUD.pptxnelsontobontrujillo
 
El_ideal_de_Nación-En_Miguel-Triana[1].pdf
El_ideal_de_Nación-En_Miguel-Triana[1].pdfEl_ideal_de_Nación-En_Miguel-Triana[1].pdf
El_ideal_de_Nación-En_Miguel-Triana[1].pdfAngel David Guerrero
 
EXPERIENCIA DE APRENDIZAJE 3 EPT - SECUNDARIA-2024.docx
EXPERIENCIA DE APRENDIZAJE 3  EPT - SECUNDARIA-2024.docxEXPERIENCIA DE APRENDIZAJE 3  EPT - SECUNDARIA-2024.docx
EXPERIENCIA DE APRENDIZAJE 3 EPT - SECUNDARIA-2024.docxssuser9be75b1
 
Escuela de la Confianza DRELM-MINEDU Ccesa007.pdf
Escuela de la Confianza DRELM-MINEDU  Ccesa007.pdfEscuela de la Confianza DRELM-MINEDU  Ccesa007.pdf
Escuela de la Confianza DRELM-MINEDU Ccesa007.pdfDemetrio Ccesa Rayme
 
Dia internacional de peliculas iberoamericanas.pptx
Dia internacional de peliculas iberoamericanas.pptxDia internacional de peliculas iberoamericanas.pptx
Dia internacional de peliculas iberoamericanas.pptxxc025079
 
Vive este tiempo final de la Cuaresma con nuestro Viacrucis eudista de realid...
Vive este tiempo final de la Cuaresma con nuestro Viacrucis eudista de realid...Vive este tiempo final de la Cuaresma con nuestro Viacrucis eudista de realid...
Vive este tiempo final de la Cuaresma con nuestro Viacrucis eudista de realid...Unidad de Espiritualidad Eudista
 
La Planificacion en Educacion Inicial EDU7 Ccesa007.pdf
La Planificacion en Educacion Inicial   EDU7    Ccesa007.pdfLa Planificacion en Educacion Inicial   EDU7    Ccesa007.pdf
La Planificacion en Educacion Inicial EDU7 Ccesa007.pdfDemetrio Ccesa Rayme
 
ROSAURA REVUELTAS, ESPERANZA Y LA SAL DE LA TIERRA (1).pdf
ROSAURA REVUELTAS, ESPERANZA Y LA SAL DE LA TIERRA (1).pdfROSAURA REVUELTAS, ESPERANZA Y LA SAL DE LA TIERRA (1).pdf
ROSAURA REVUELTAS, ESPERANZA Y LA SAL DE LA TIERRA (1).pdfavitiadgo
 
Lengua Y Literatura 8 Básico 2024 pdfghh
Lengua Y Literatura 8 Básico 2024 pdfghhLengua Y Literatura 8 Básico 2024 pdfghh
Lengua Y Literatura 8 Básico 2024 pdfghhDidiexy1
 
Proyecto del via crucis para semana s.docx
Proyecto del via crucis para semana s.docxProyecto del via crucis para semana s.docx
Proyecto del via crucis para semana s.docxYANETH ARENAS VALDIVIA
 
EVALUACIÓN DIAGNÓSTICA 4° GRADO 2024.docx
EVALUACIÓN DIAGNÓSTICA  4°  GRADO 2024.docxEVALUACIÓN DIAGNÓSTICA  4°  GRADO 2024.docx
EVALUACIÓN DIAGNÓSTICA 4° GRADO 2024.docxssuser9be75b1
 
Lengua Y Literatura 8 Básico 2024 pdfyyy
Lengua Y Literatura 8 Básico 2024 pdfyyyLengua Y Literatura 8 Básico 2024 pdfyyy
Lengua Y Literatura 8 Básico 2024 pdfyyyDidiexy1
 
2024-orientaciones-para-la-evaluacion-diagnostica-2024-en-las-iiee-publicas-d...
2024-orientaciones-para-la-evaluacion-diagnostica-2024-en-las-iiee-publicas-d...2024-orientaciones-para-la-evaluacion-diagnostica-2024-en-las-iiee-publicas-d...
2024-orientaciones-para-la-evaluacion-diagnostica-2024-en-las-iiee-publicas-d...William Henry Vegazo Muro
 
3. ¡Promoviendo la Paternidad Responsable en La Recoleta!
3. ¡Promoviendo la Paternidad Responsable en La Recoleta!3. ¡Promoviendo la Paternidad Responsable en La Recoleta!
3. ¡Promoviendo la Paternidad Responsable en La Recoleta!ProfesorGualberto
 
MIINISTERIO DE EDUCACIÓN prueba-diagnostica-lectura TERCERO DE SECUNDARIA
MIINISTERIO DE EDUCACIÓN prueba-diagnostica-lectura TERCERO DE SECUNDARIAMIINISTERIO DE EDUCACIÓN prueba-diagnostica-lectura TERCERO DE SECUNDARIA
MIINISTERIO DE EDUCACIÓN prueba-diagnostica-lectura TERCERO DE SECUNDARIANELLYKATTY
 

Último (20)

Unidad 00 CIENCIA Y TECNOLOGÍA. sesión de bienvenidadocx
Unidad 00 CIENCIA Y TECNOLOGÍA. sesión de bienvenidadocxUnidad 00 CIENCIA Y TECNOLOGÍA. sesión de bienvenidadocx
Unidad 00 CIENCIA Y TECNOLOGÍA. sesión de bienvenidadocx
 
IMPORTANCIA DE LA NUTRICIÓN PARA LA VIDA Y LA SALUD.pptx
IMPORTANCIA DE LA NUTRICIÓN PARA LA VIDA Y LA SALUD.pptxIMPORTANCIA DE LA NUTRICIÓN PARA LA VIDA Y LA SALUD.pptx
IMPORTANCIA DE LA NUTRICIÓN PARA LA VIDA Y LA SALUD.pptx
 
El_ideal_de_Nación-En_Miguel-Triana[1].pdf
El_ideal_de_Nación-En_Miguel-Triana[1].pdfEl_ideal_de_Nación-En_Miguel-Triana[1].pdf
El_ideal_de_Nación-En_Miguel-Triana[1].pdf
 
EXPERIENCIA DE APRENDIZAJE 3 EPT - SECUNDARIA-2024.docx
EXPERIENCIA DE APRENDIZAJE 3  EPT - SECUNDARIA-2024.docxEXPERIENCIA DE APRENDIZAJE 3  EPT - SECUNDARIA-2024.docx
EXPERIENCIA DE APRENDIZAJE 3 EPT - SECUNDARIA-2024.docx
 
Escuela de la Confianza DRELM-MINEDU Ccesa007.pdf
Escuela de la Confianza DRELM-MINEDU  Ccesa007.pdfEscuela de la Confianza DRELM-MINEDU  Ccesa007.pdf
Escuela de la Confianza DRELM-MINEDU Ccesa007.pdf
 
Dia internacional de peliculas iberoamericanas.pptx
Dia internacional de peliculas iberoamericanas.pptxDia internacional de peliculas iberoamericanas.pptx
Dia internacional de peliculas iberoamericanas.pptx
 
Tema 4.- INSFRAESTRUCTURAS DE TI Y TECNOLOGIAS EMERGENTES.pdf
Tema 4.- INSFRAESTRUCTURAS DE TI Y TECNOLOGIAS EMERGENTES.pdfTema 4.- INSFRAESTRUCTURAS DE TI Y TECNOLOGIAS EMERGENTES.pdf
Tema 4.- INSFRAESTRUCTURAS DE TI Y TECNOLOGIAS EMERGENTES.pdf
 
Vive este tiempo final de la Cuaresma con nuestro Viacrucis eudista de realid...
Vive este tiempo final de la Cuaresma con nuestro Viacrucis eudista de realid...Vive este tiempo final de la Cuaresma con nuestro Viacrucis eudista de realid...
Vive este tiempo final de la Cuaresma con nuestro Viacrucis eudista de realid...
 
El anhelo de Dios en Sion (Sesión de clase)
El anhelo de Dios en Sion (Sesión de clase)El anhelo de Dios en Sion (Sesión de clase)
El anhelo de Dios en Sion (Sesión de clase)
 
La Planificacion en Educacion Inicial EDU7 Ccesa007.pdf
La Planificacion en Educacion Inicial   EDU7    Ccesa007.pdfLa Planificacion en Educacion Inicial   EDU7    Ccesa007.pdf
La Planificacion en Educacion Inicial EDU7 Ccesa007.pdf
 
Repaso Ejercicios Pruebas CRECE-PR-2024.pptx
Repaso Ejercicios Pruebas CRECE-PR-2024.pptxRepaso Ejercicios Pruebas CRECE-PR-2024.pptx
Repaso Ejercicios Pruebas CRECE-PR-2024.pptx
 
ROSAURA REVUELTAS, ESPERANZA Y LA SAL DE LA TIERRA (1).pdf
ROSAURA REVUELTAS, ESPERANZA Y LA SAL DE LA TIERRA (1).pdfROSAURA REVUELTAS, ESPERANZA Y LA SAL DE LA TIERRA (1).pdf
ROSAURA REVUELTAS, ESPERANZA Y LA SAL DE LA TIERRA (1).pdf
 
Lengua Y Literatura 8 Básico 2024 pdfghh
Lengua Y Literatura 8 Básico 2024 pdfghhLengua Y Literatura 8 Básico 2024 pdfghh
Lengua Y Literatura 8 Básico 2024 pdfghh
 
Proyecto del via crucis para semana s.docx
Proyecto del via crucis para semana s.docxProyecto del via crucis para semana s.docx
Proyecto del via crucis para semana s.docx
 
El anhelo de Dios en Sion, porque nos ama
El anhelo de Dios en Sion, porque nos amaEl anhelo de Dios en Sion, porque nos ama
El anhelo de Dios en Sion, porque nos ama
 
EVALUACIÓN DIAGNÓSTICA 4° GRADO 2024.docx
EVALUACIÓN DIAGNÓSTICA  4°  GRADO 2024.docxEVALUACIÓN DIAGNÓSTICA  4°  GRADO 2024.docx
EVALUACIÓN DIAGNÓSTICA 4° GRADO 2024.docx
 
Lengua Y Literatura 8 Básico 2024 pdfyyy
Lengua Y Literatura 8 Básico 2024 pdfyyyLengua Y Literatura 8 Básico 2024 pdfyyy
Lengua Y Literatura 8 Básico 2024 pdfyyy
 
2024-orientaciones-para-la-evaluacion-diagnostica-2024-en-las-iiee-publicas-d...
2024-orientaciones-para-la-evaluacion-diagnostica-2024-en-las-iiee-publicas-d...2024-orientaciones-para-la-evaluacion-diagnostica-2024-en-las-iiee-publicas-d...
2024-orientaciones-para-la-evaluacion-diagnostica-2024-en-las-iiee-publicas-d...
 
3. ¡Promoviendo la Paternidad Responsable en La Recoleta!
3. ¡Promoviendo la Paternidad Responsable en La Recoleta!3. ¡Promoviendo la Paternidad Responsable en La Recoleta!
3. ¡Promoviendo la Paternidad Responsable en La Recoleta!
 
MIINISTERIO DE EDUCACIÓN prueba-diagnostica-lectura TERCERO DE SECUNDARIA
MIINISTERIO DE EDUCACIÓN prueba-diagnostica-lectura TERCERO DE SECUNDARIAMIINISTERIO DE EDUCACIÓN prueba-diagnostica-lectura TERCERO DE SECUNDARIA
MIINISTERIO DE EDUCACIÓN prueba-diagnostica-lectura TERCERO DE SECUNDARIA
 

Estructuras lineales

  • 1. Estructuras lineales Presentar los TAD lineales pila, cola y secuencia Mostrar la especificación de cada uno de los TAD lineales Descubrir implementaciones alternativas para cada uno de ellos Ejemplos de aplicación
  • 2. AEDI – I.T. Informática de Gestión – Curso 09/10 Estructuras lineales Contenidos 1. Introducción 2. TAD Pila 2.1. Especificación 2.2. Implementación 2.3. Aplicaciones 3. TAD Cola 3.1. Especificación 3.2. Implementación 3.3. Variantes del TAD Cola 3.4. Aplicaciones 4. Secuencias 4.1. Secuencias por posición 4.2. Iteradores
  • 3. AEDI – I.T. Informática de Gestión – Curso 09/10 Estructuras lineales Bibliografía Goodrich M. y Tamassia R., Data structures and Algorithms in JAVA 4ª ed. John Wiley & Sons Inc. , 2006 Págs.187-203, 204- 210, 222-228, 231-241, 242-248 Lewis, J. y Chase J. Estructuras de datos con Java. Diseño de estructuras y algoritmos. 2ª ed. Pearson. Addisson Wesley. 2006 Págs. 152-161, 166-174, 180-182, 193-205 Weiss, Mark Allen, Estructuras de datos en Java: compatible con JAVA 2, Addisson Wesley. 2000. Págs.139-146, 395-410, 415-427 Liskov, B. y J. Guttag, Program Development in Java: Abstraction, Specification, and Object-Oriented Design, Addison- Wesley, 2001. Págs. 125-137
  • 4. AEDI – I.T. Informática de Gestión – Curso 09/10 Estructuras lineales Las estructuras lineales son importantes porque aparecen con mucha frecuencia en situaciones de la vida Ejemplos: Una cola de clientes de un banco, las instrucciones de un programa, los caracteres de una cadena o las páginas de un libro Características: existe un único elemento, llamado primero, existe un único elemento, llamado último, cada elemento, excepto el primero, tiene un único predecesor y cada elemento, excepto el último, tiene un único sucesor Operaciones: crear la estructura vacía, insertar un elemento, borrar un elemento y obtener un elemento Para definir claramente el comportamiento de la estructura es necesario determinar en qué posición se inserta un elemento nuevo y qué elemento se borra o se obtiene. Principales estructuras lineales: pilas, colas y secuencias.
  • 5. AEDI – I.T. Informática de Gestión – Curso 09/10 TAD Pila Contenedor de objetos que son insertados y eliminados de acuerdo con el principio de que el último en entrar es el primero en salir (LIFO - Last In First Out) Los elementos se insertan de uno en uno (push - apilar) Los elementos se sacan en orden inverso al cual se han insertado (pop - desapilar) El único elemento que se puede observar es el último insertado (tope o cima) Entrar Salir a1 a2 a3 Tope de la pila
  • 6. AEDI – I.T. Informática de Gestión – Curso 09/10 TAD Pila Especificación public class Pila <E> { // características: // Es una secuencia de elementos donde el último en entrar es el primero en ser eliminado // Los objetos son modificables. public Pila <E> ( ) // Produce: una pila vacía public int tamaño() // Produce: devuelve el número de elementos de la pila public boolean esVacio() // Produce: cierto si la pila está vacía. Falso en otro caso public E top() throws PilaVaciaExcepcion // Produce: si la pila está vacía lanza la excepción PilaVaciaExcepcion, // sino devuelve el objeto más recientemente introducido public E pop() throws PilaVaciaExcepcion // Modifica: this // Produce: si la pila está vacía lanza la excepción PilaVaciaExcepcion, // sino devuelve el objeto más recientemente introducido y lo suprime de la pila public void push (E elemento) // Modifica: this // Produce: añade un objeto a la pila, pasando a ser el nuevo tope }
  • 7. AEDI – I.T. Informática de Gestión – Curso 09/10 TAD Pila Ejemplo de uso del TAD Pila public class PruebaPila{ public static void main (String []args){ Pila<Integer> p = new Pila<Integer>(); for (int i=1; i<10;i++) p.push(i); System.out.println("Los elementos son: "); while(!p.esVacio()) System.out.println(p.pop()); } }
  • 8. AEDI – I.T. Informática de Gestión – Curso 09/10 TAD Pila Aplicaciones en la vida real: Navegadores en Internet almacenan en una pila las direcciones de los sitios más recientemente visitados. Los editores de texto proporcionan normalmente un botón deshacer que cancela las operaciones de edición recientes y restablece el estado anterior del documento. Aplicaciones en programación Las pilas son una estructura de datos muy usada como estructura auxiliar en diversos algoritmos y esquemas de programación. Los casos más representativos son: Palíndromo, cambio de base, etc Solitario, Laberinto, etc. (back tracking). Evaluación de expresiones aritméticas, conversión de notaciones (postfija, prefija, infija)... Recursión.
  • 9. AEDI – I.T. Informática de Gestión – Curso 09/10 TAD Pila Implementación del TAD Pila Paso 1: Definición interfaz public interface Pila<E>{ public int tamaño(); public boolean esVacio(); public E top() throws PilaVaciaExcepcion; public void push (E elemento); public E pop() throws PilaVaciaExcepcion; } Paso 2: Clase implemente la interfaz Mediante arrays public class ArrayPila<E> implements Pila<E> Mediante listas enlazadas genéricas public class EnlazadaPila<E> implements Pila<E>
  • 10. AEDI – I.T. Informática de Gestión – Curso 09/10 TAD Pila public class PilaVaciaExcepcion extends RuntimeException{ public PilaVaciaExcepcion (){ super(); } public PilaVaciaExcepcion (String mensaje){ super(mensaje); } }
  • 11. AEDI – I.T. Informática de Gestión – Curso 09/10 TAD Pila public class ArrayPila<E> implements Pila<E>{ public static final int CAPACIDAD_POR_DEFECTO=10; private E [] elementos; private int tope; Ventaja: todas las operaciones tienen coste temporal constante O(1) Problema: pila llena Solución: método privado duplicarPila() -> expansión dinámica del vector un nuevo tipo de excepción, PilaLlenaExcepcion elementos Tope de la pila a1 a2 a3 a4 ... at 0 1 2 3 tope N-1 Representación
  • 12. AEDI – I.T. Informática de Gestión – Curso 09/10 TAD Pila Representación public class EnlazadaPila<E> implements Pila<E> { private Nodo<E> tope; private int contador; Ventajas: todas las operaciones tienen coste temporal constante O(1) no hay limitaciones de tamaño Tope de la pila
  • 13. AEDI – I.T. Informática de Gestión – Curso 09/10 TAD Pila public class Nodo<E> { private E elemento; //referencia al elemento del nodo private Nodo<E> sig; //referencia al siguiente nodo de la lista public Nodo(){ //Produce: crea un nodo con valor null en sus referencias al elemento y al siguiente nodo this(null,null); } public Nodo(E e, Nodo<E> n){ // Produce: un objeto Nodo con el elemento y siguiente nodo que se le pasa como parámetro elemento=e; sig=n; } public void setElemento(E e){ // Modifica: this // Produce: modifica el atributo elemento de this elemento = e; } public void setSig(Nodo<E> n){ // Modifica: this // Produce: modifica el atributo sig de this sig = n; } public E getElemento(){ // Produce: devuelve el atributo elemento de this return elemento; } public Nodo<E> getSig(){ // Produce: devuelve el atributo sig de this return sig; } }
  • 14. AEDI – I.T. Informática de Gestión – Curso 09/10 TAD Pila public class EnlazadaPila<E> implements Pila<E> { private Nodo<E> tope; private int contador; public EnlazadaPila(){ tope=null; contador=0; } public int tamaño(){ return contador; } public boolean esVacio(){ return tope==null; } public E top() throws PilaVaciaExcepcion{ if (esVacio()) throw new PilaVaciaExcepcion("top: Pila Vacia"); return tope.getElemento(); } public void push (E e){ Nodo<E> n=new Nodo<E>(e,tope); tope=n; contador++; } public E pop() throws PilaVaciaExcepcion{ if (esVacio()) throw new PilaVaciaExcepcion("pop: Pila Vacia"); E e=tope.getElemento(); tope=tope.getSig(); contador--; return e; } }
  • 15. AEDI – I.T. Informática de Gestión – Curso 09/10 TAD Pila public interface Pila<E>{ public int tamaño(); public boolean esVacio(); public E top() throws PilaVaciaExcepcion; public void push (E elemento); public E pop() throws PilaVaciaExcepcion; } public class PilaVaciaExcepcion{ public PilaVaciaExcepcion(){ … } public PilaVaciaExcepcion(String mensaje){ … } } public class ArrayPila<E> implements Pila<E>{ public static final int CAPACIDAD_POR_DEFECTO=10; private E [] elementos; private int tope; public ArrayPila(){ // inicializa los atributos de la representación } //implementación operaciones de la interfaz } public class EnlazadaPila<E> implements Pila<E>{ private Nodo<E> tope; private int contador; public EnlazadaPila(){ // inicializa los atributos de la representación } //implementación operaciones de la interfaz } public class Nodo<E>{ private E elemento; private Nodo<E> sig; public Nodo(){ --- } //resto operaciones }