SlideShare una empresa de Scribd logo
1 de 26
Descargar para leer sin conexión
Ing. Luis Miralles
PROGRAMACIÓN Y
ESTRUCTURA DE DATOS
Clase de repaso
 Suponemos que el alumno ya ha asistido a las clases.
 En esta clase haremos un recorrido de los puntos más importantes del
tema 1 y del tema 2.
 Debido a que disponemos de un tiempo escaso, nos centraremos en los
puntos fundamentales.
2
Tema 1: Introducción
3
Tema 1
4
INTRODUCCIÓN.
1. ¿Qué es una estructura de datos y para qué sirve?
2. Abstracción de datos. Concepto de tipo de datos
abstracto.
3. Clasificación de las estructuras de datos.
1. Estructuras Básicas.
1. Arreglos unidimensionales, multidimensionales.
2. Conjunto. Descripción.
3. Registro. Descripción.
4. Implementación de las estructuras de datos.
1. Estática.
2. Dinámica. Descripción de apuntador.
3. Comparación de las implementaciones.
Tema 1: Introducción
Abstracción:
Operación mental destinada a destacar las partes relevantes del objeto e
ignorar otros aspectos irrelevantes del mismo.
Evolución de los lenguajes de programación:
Los lenguajes de programación han evolucionado de bajo nivel a alto nivel. John
Guttag en1974 propuso el modelo de tipo abstracto de datos pero no fue
hasta 1975 cuando Liskov lo propuso para el lenguaje CLU. Los lenguajes de
programación son independientes de la máquina.
Tipo abstracto de datos:
Se puede definir como una terna de conjuntos (D, O, A), donde D representa el
dominio; O es el conjunto de operaciones y A es el conjunto de axiomas.
Es independiente del lenguaje de programación. Para llevarlos a cabo se
necesitan las estructuras de datos y los procedimientos.
Ej: Persona, perro.
5
Tema 1: Introducción
Estructura de datos:
Las estructuras de datos son agrupaciones de datos, quizás de distinta
naturaleza (tipo), relacionados (conectados) entre sí de diversas formas y las
operaciones definidas sobre esa agrupación. Las estructuras de datos se
caracterizan por el tipo de los elementos de la estructura, las relaciones
definidas sobre los elementos y las operaciones permitidas sobre la estructura.
Ej: Struct Persona { char Nombre[65]; char Direccion[65]; int AnyoNacimiento; } Fulanito;
Tipos de datos:
El tipo de datos, en un lenguaje de programación, define el conjunto de valores
que una determinada variable puede tomar, así como las operaciones básicas
sobre dicho conjunto. Definen cómo se representa la información y cómo se
interpreta. Están los que vienen en el lenguaje de programación y los que puede
definir el usuario.
Ej: boolean, int, float, char, string…
6
Tema 1: Introducción
7
Objeto
Estructura de
datos
Métodos= +
T.A.D
Modelo de
datos
Operaciones= +
Tipos de
datos
Tema 1: Introducción
8
Tema 1: Estructura de los tipos de datos
9
Compuestos
Tema 1: Introducción
Arreglos: Un arreglo es un tipo de dato cuya implantación implica una
colección de elementos finita y homogénea. Para acceder: nombre del
arreglo y índice.
Ej: int vector[100], float matriz[100 ][100]
10
Figura 1
Figura 2 Figura 3
Tema1: Introducción
Registros
Permite agrupar diferentes elementos y manejarlos como un todo, además
permite establecer relaciones lógicas entre ellos. Para acceder a cada uno
de los elementos se utiliza un selector de campo o elemento. Ej:
Ej: struct Producto {int cantidad; int precio ; int subtotal; };
producto.cantidad = 3;
Enumerados
Es un tipo de dato que permite agrupar diferentes identificadores bajo una
denominación y asignar estos valores a las variables definidas para ello.
Ej: Enum color = {rojo,verde, azul, amarillo};
11
Tema 1: Implementación de las estructuras de
datos, Estática vs dinámica
Implementación estática:
No se modifica en tiempo de ejecución. Fácil de manejar y rápida de acceso
pero se desperdicia memoria.
Implementación dinámica:
Su tamaño puede variar durante la ejecución del programa. Más complejo
de implementar pero optimiza el programa. Complica el acceso y la
optimización del programa.
12
Tema 1: Apuntadores
13
Ejemplo 1;
Int * p; // declaramos p
p = new int; // reservamos espacio
*p= 1; // asignamos el valor 1
delete p; // liberamos espacio de p
Ejemplo 2;
int i = 2;
int *pi ;
pi = &i; // ahora pi contiene la dirección de la variable i.
int j = *pi; // j tomaría el valor 2, que es el contenido de la variable i anterior
Ejemplo 3;
int *i, *j;
i= j; // i apunta donde apunta j
*i = *j; // la variable *i tiene en su memoria el contenido de *j
Un apuntador es una variable que contiene una posición de memoria, y por
tanto se dice que apunta a esa posición de memoria. Tiene las operaciones de
new y delete. Hay operadores como dirección “&” o “*”, que es el valor
contenido y el operador “->” para acceder a un campo.
Tema 2: Pilas
14
Tema 2: Pilas
15
ESTRUCTURA DE DATO: PILAS.
1. Descripción.
2. Operaciones básicas.
1. Vaciar pila.
2. Revisar si está vacía.
3. Insertar y sacar un elemento.
4. Devolver el elemento que se encuentre en el tope.
Tema 2: Pilas
La pila es una lista de elementos caracterizada porque las operaciones de
inserción y eliminación de elementos se realizan solamente en un extremo
de la estructura que se llama tope. Estructura LIFO (Last In First Out):
“Último en entrar primero en salir”
Ejemplo: Platos o Libros
16
Inicio:
Insertar
A:
Tope -1
Insertar
B:
Insertar
C:
Eliminar
elemento
Tope
A A
B
Tope
A
B
Tope
C
A
B
Tope
Ejemplo:
Tema 2: Pilas
 Estructura
Pila ( Valor ) /* Valor será el tipo de datos que podremos guardar en la pila */
 Operaciones
CREAR_PILA ( ) → Pila
APILAR ( Pila , Valor ) → Pila
DESAPILAR ( Pila ) → Pila
CIMA_PILA ( Pila ) → Valor
PILA_VACIA ( Pila ) → Lógico
 Axiomas
∀ stack ∈ Pila, x ∈ Valor se cumple que:
PILA_VACIA ( CREAR_PILA ( ) ) → cierto
PILA_VACIA ( APILAR ( stack, x ) ) → falso
DESAPILAR ( CREAR_PILA ( ) ) → error
DESAPILAR ( APILAR ( stack, x ) ) → stack
CIMA_PILA ( CREAR_PILA ( ) ) → error
CIMA_PILA ( APILAR ( stack, x ) ) → x
18
Tema 2: Pilas Estáticas
class Pila
{
public:
Pila (void); // Constructor
bool Apilar (Valor);
bool Desapilar (void);
bool CimaPila (Valor &);
bool PilaVacia (void);
private:
Vector vect;
int cima;
};
typedef Valor Vector[MAX];
19
Tema 2: Pilas estáticas
Constructor de la clase:
Pila::Pila (void)
{
cima = 0;
}
bool Pila::PilaVacia (void)
{
return cima == 0;
}
bool Pila::CimaPila (Valor & x)
{
bool error;
if (cima == 0)
error = true;
else
{
error = false;
x = info[cima - 1];
}
return error;
}
20
Tema 2: Pilas estáticas
bool Pila::Apilar (Valor x)
{
bool error;
if (cima == MAX)
error = true;
else
{
error = false;
info[cima] = x;
cima++;
}
return error;
}
bool Pila::Desapilar (void)
{
bool error;
If (cima == 0)
error = true;
else
{
error = false;
cima--;
}
return error;
}
21
Tema 2: Pilas dinámicas
class Pila
{
public:
Pila (void); // Constructor
bool Apilar (Valor);
bool Desapilar (void);
bool CimaPila (Valor &);
bool PilaVacia (void);
private:
Puntero cima;
};
typedef struct Nodo * Puntero;
struct Nodo
{
Valor info;
Puntero sig;
};
22
Tema 2: Pilas dinámicas
Constructor de la clase:
Pila::Pila (void)
{
cima = NULL;
}
bool Pila::PilaVacia (void)
{
return cima == NULL;
}
bool Pila::CimaPila (Valor & x)
{
bool error;
if (cima == NULL)
error = true;
else
{
error = false;
x = cima->info;
}
return error;
}
23
Tema 1: Insertar, extraer y visualizar
24
Tema 2: Pilas dinámicas
bool Pila::Apilar (Valor x)
{
bool error;
Puntero p_aux;
error = false;
p_aux = new Nodo;
p_aux->info = x;
p_aux->sig = cima;
cima = p_aux;
return error;
}
bool Pila::Desapilar (void)
{
bool error;
Puntero p_aux;
if (cima == NULL)
error = true;
else
{
error = false;
p_aux = cima;
cima = cima->sig;
delete p_aux;
}
return error;
}
25
26
Gracias

Más contenido relacionado

La actualidad más candente

Arreglos en c ++
Arreglos en c ++Arreglos en c ++
Arreglos en c ++
tacubomx
 
Inføяmǻticǻ ii objetivo 1.2.5
Inføяmǻticǻ ii objetivo 1.2.5Inføяmǻticǻ ii objetivo 1.2.5
Inføяmǻticǻ ii objetivo 1.2.5
Yaz Cahuantzi
 
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
Videoconferencias UTPL
 
Trabajo De Matematicas
Trabajo De MatematicasTrabajo De Matematicas
Trabajo De Matematicas
d16gl
 
Funciones con vectores y matrices
Funciones con vectores y matricesFunciones con vectores y matrices
Funciones con vectores y matrices
Johanna Marin
 
Funciones con arrays y vectores en c
Funciones con arrays y vectores en cFunciones con arrays y vectores en c
Funciones con arrays y vectores en c
Diego Maxdj Chicaiza
 
Vectores en programacion
Vectores en programacionVectores en programacion
Vectores en programacion
laryenso
 
Clase 9- programacion
Clase 9- programacionClase 9- programacion
Clase 9- programacion
diego MC
 

La actualidad más candente (20)

Arreglos
ArreglosArreglos
Arreglos
 
Arreglos en c ++
Arreglos en c ++Arreglos en c ++
Arreglos en c ++
 
Estructurada 7
Estructurada 7Estructurada 7
Estructurada 7
 
Inføяmǻticǻ ii objetivo 1.2.5
Inføяmǻticǻ ii objetivo 1.2.5Inføяmǻticǻ ii objetivo 1.2.5
Inføяmǻticǻ ii objetivo 1.2.5
 
06 - Arrays y matrices en lenguaje C
06 - Arrays y matrices en lenguaje C06 - Arrays y matrices en lenguaje C
06 - Arrays y matrices en lenguaje C
 
Fundamentos de Programacion - Unidad 5 arreglos (vectores)
Fundamentos de Programacion - Unidad 5 arreglos (vectores)Fundamentos de Programacion - Unidad 5 arreglos (vectores)
Fundamentos de Programacion - Unidad 5 arreglos (vectores)
 
08 - Punteros en lenguaje C
08 - Punteros en lenguaje C08 - Punteros en lenguaje C
08 - Punteros en lenguaje C
 
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
 
Arreglos c++
Arreglos c++Arreglos c++
Arreglos c++
 
Trabajo De Matematicas
Trabajo De MatematicasTrabajo De Matematicas
Trabajo De Matematicas
 
Funciones con vectores y matrices
Funciones con vectores y matricesFunciones con vectores y matrices
Funciones con vectores y matrices
 
Estructura de Datos
Estructura de DatosEstructura de Datos
Estructura de Datos
 
Arreglos unidimensionales
Arreglos unidimensionalesArreglos unidimensionales
Arreglos unidimensionales
 
Video 1 metodos y arreglos
Video 1 metodos y arreglosVideo 1 metodos y arreglos
Video 1 metodos y arreglos
 
Arreglos programacion
Arreglos programacionArreglos programacion
Arreglos programacion
 
Funciones con arrays y vectores en c
Funciones con arrays y vectores en cFunciones con arrays y vectores en c
Funciones con arrays y vectores en c
 
Arreglos C#
Arreglos C#Arreglos C#
Arreglos C#
 
Vectores en programacion
Vectores en programacionVectores en programacion
Vectores en programacion
 
Clase 9- programacion
Clase 9- programacionClase 9- programacion
Clase 9- programacion
 
Arreglos-Programacion
Arreglos-ProgramacionArreglos-Programacion
Arreglos-Programacion
 

Destacado

H O M B R E S L I B R E S Y D E B U E N A S C O S T U M B R E S
H O M B R E S  L I B R E S  Y  D E  B U E N A S  C O S T U M B R E SH O M B R E S  L I B R E S  Y  D E  B U E N A S  C O S T U M B R E S
H O M B R E S L I B R E S Y D E B U E N A S C O S T U M B R E S
JACK DRUMMAS
 
Masoneria
MasoneriaMasoneria
Masoneria
shova17
 

Destacado (20)

Escuela de los estados unidos [modo de compatibilidad]
Escuela de los estados unidos [modo de compatibilidad]Escuela de los estados unidos [modo de compatibilidad]
Escuela de los estados unidos [modo de compatibilidad]
 
06 01 47 prevenir ataque al-corazon www.gftaognosticaespiritual.org
06 01 47 prevenir ataque al-corazon www.gftaognosticaespiritual.org06 01 47 prevenir ataque al-corazon www.gftaognosticaespiritual.org
06 01 47 prevenir ataque al-corazon www.gftaognosticaespiritual.org
 
06 01 48 radiacion de los celulares www.gftaognosticaespiritual.org
06 01 48 radiacion de los celulares www.gftaognosticaespiritual.org06 01 48 radiacion de los celulares www.gftaognosticaespiritual.org
06 01 48 radiacion de los celulares www.gftaognosticaespiritual.org
 
Si fuera mi utimo Sermon
Si fuera mi utimo SermonSi fuera mi utimo Sermon
Si fuera mi utimo Sermon
 
El arte de Gabriel Picart
El arte de Gabriel PicartEl arte de Gabriel Picart
El arte de Gabriel Picart
 
Lobos con-piel-de-oveja
Lobos con-piel-de-ovejaLobos con-piel-de-oveja
Lobos con-piel-de-oveja
 
Los LandMarks
Los LandMarksLos LandMarks
Los LandMarks
 
El Pantanal
El PantanalEl Pantanal
El Pantanal
 
H O M B R E S L I B R E S Y D E B U E N A S C O S T U M B R E S
H O M B R E S  L I B R E S  Y  D E  B U E N A S  C O S T U M B R E SH O M B R E S  L I B R E S  Y  D E  B U E N A S  C O S T U M B R E S
H O M B R E S L I B R E S Y D E B U E N A S C O S T U M B R E S
 
Masoneria
MasoneriaMasoneria
Masoneria
 
06 01 56 una mente dos cerebros www.gftaognosticaespiritual.org
06 01 56 una mente dos cerebros www.gftaognosticaespiritual.org06 01 56 una mente dos cerebros www.gftaognosticaespiritual.org
06 01 56 una mente dos cerebros www.gftaognosticaespiritual.org
 
Sagrada familia murillo
Sagrada familia murilloSagrada familia murillo
Sagrada familia murillo
 
Bases xiv bienal de arq mexicana
Bases  xiv bienal de arq mexicanaBases  xiv bienal de arq mexicana
Bases xiv bienal de arq mexicana
 
Metro de Estocolmo
Metro de EstocolmoMetro de Estocolmo
Metro de Estocolmo
 
06 01 46 potencializa tu cerebro buenconsejo 1
06 01 46 potencializa tu cerebro buenconsejo 106 01 46 potencializa tu cerebro buenconsejo 1
06 01 46 potencializa tu cerebro buenconsejo 1
 
Diplomado sig ibero 2016
Diplomado sig ibero 2016Diplomado sig ibero 2016
Diplomado sig ibero 2016
 
5 cosas que cada hijo necesira saber
5 cosas que cada hijo necesira saber5 cosas que cada hijo necesira saber
5 cosas que cada hijo necesira saber
 
Arte Surrealista
Arte SurrealistaArte Surrealista
Arte Surrealista
 
Solsticio Invierno 2007
Solsticio Invierno 2007Solsticio Invierno 2007
Solsticio Invierno 2007
 
Preciosos lugares de Argentina
Preciosos lugares de ArgentinaPreciosos lugares de Argentina
Preciosos lugares de Argentina
 

Similar a Clase ed v7

Poo 2009 u2_introd_a_la_poo_2
Poo 2009 u2_introd_a_la_poo_2Poo 2009 u2_introd_a_la_poo_2
Poo 2009 u2_introd_a_la_poo_2
Axel
 
Estructuras de datos_dinamicas_definicion_e_implementacion_
Estructuras de datos_dinamicas_definicion_e_implementacion_Estructuras de datos_dinamicas_definicion_e_implementacion_
Estructuras de datos_dinamicas_definicion_e_implementacion_
Diosmary Marrón Dellán
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetos
jent46
 
3 desarollo manejo datos capitulo 1 -01 arreglos de dimension (6)
3 desarollo manejo datos capitulo 1 -01 arreglos de dimension (6)3 desarollo manejo datos capitulo 1 -01 arreglos de dimension (6)
3 desarollo manejo datos capitulo 1 -01 arreglos de dimension (6)
luis freddy
 

Similar a Clase ed v7 (20)

Cplus
CplusCplus
Cplus
 
C++
C++C++
C++
 
Programación en c++
Programación en c++Programación en c++
Programación en c++
 
Poo 2009 u2_introd_a_la_poo_2
Poo 2009 u2_introd_a_la_poo_2Poo 2009 u2_introd_a_la_poo_2
Poo 2009 u2_introd_a_la_poo_2
 
Programación en c++
Programación en c++Programación en c++
Programación en c++
 
Tipos de Datos Abstractos (TDA)
Tipos de Datos Abstractos (TDA)Tipos de Datos Abstractos (TDA)
Tipos de Datos Abstractos (TDA)
 
Tema1Instrucciones-DeclaracionAsignacion.pptx
Tema1Instrucciones-DeclaracionAsignacion.pptxTema1Instrucciones-DeclaracionAsignacion.pptx
Tema1Instrucciones-DeclaracionAsignacion.pptx
 
Estructuras de datos_dinamicas_definicion_e_implementacion_
Estructuras de datos_dinamicas_definicion_e_implementacion_Estructuras de datos_dinamicas_definicion_e_implementacion_
Estructuras de datos_dinamicas_definicion_e_implementacion_
 
Estructuras de datos_dinamicas_definicion_e_implementacion_
Estructuras de datos_dinamicas_definicion_e_implementacion_Estructuras de datos_dinamicas_definicion_e_implementacion_
Estructuras de datos_dinamicas_definicion_e_implementacion_
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetos
 
POO.pdf
POO.pdfPOO.pdf
POO.pdf
 
Curso básico de lenguaje R aplicado a las Ciencias Sociales
Curso básico de lenguaje R aplicado a las Ciencias SocialesCurso básico de lenguaje R aplicado a las Ciencias Sociales
Curso básico de lenguaje R aplicado a las Ciencias Sociales
 
Programacion Orientada a Obejtos C++
Programacion Orientada a Obejtos C++Programacion Orientada a Obejtos C++
Programacion Orientada a Obejtos C++
 
Java 1
Java 1Java 1
Java 1
 
3 desarollo manejo datos capitulo 1 -01 arreglos de dimension (6)
3 desarollo manejo datos capitulo 1 -01 arreglos de dimension (6)3 desarollo manejo datos capitulo 1 -01 arreglos de dimension (6)
3 desarollo manejo datos capitulo 1 -01 arreglos de dimension (6)
 
Clase 1- Programacion Lineal
Clase 1- Programacion LinealClase 1- Programacion Lineal
Clase 1- Programacion Lineal
 
Introduccion
IntroduccionIntroduccion
Introduccion
 
Introduccion
IntroduccionIntroduccion
Introduccion
 
Apuntadores y listas
Apuntadores y listasApuntadores y listas
Apuntadores y listas
 
8.clases y objetos en c++
8.clases y objetos en c++8.clases y objetos en c++
8.clases y objetos en c++
 

Último

Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Fernando Solis
 
Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdf
patriciaines1993
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
Wilian24
 
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docxTALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
NadiaMartnez11
 

Último (20)

BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
 
Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024
 
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
 
Factores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfFactores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdf
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
 
INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptx
 
Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024
 
activ4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdfactiv4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdf
 
Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdf
 
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxPLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
 
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
 
FUERZA Y MOVIMIENTO ciencias cuarto basico.ppt
FUERZA Y MOVIMIENTO ciencias cuarto basico.pptFUERZA Y MOVIMIENTO ciencias cuarto basico.ppt
FUERZA Y MOVIMIENTO ciencias cuarto basico.ppt
 
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
 
Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024
 
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
SESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.docSESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.doc
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
 
Sesión de clase APC: Los dos testigos.pdf
Sesión de clase APC: Los dos testigos.pdfSesión de clase APC: Los dos testigos.pdf
Sesión de clase APC: Los dos testigos.pdf
 
Infografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdfInfografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdf
 
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
 
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docxTALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
 

Clase ed v7

  • 1. Ing. Luis Miralles PROGRAMACIÓN Y ESTRUCTURA DE DATOS
  • 2. Clase de repaso  Suponemos que el alumno ya ha asistido a las clases.  En esta clase haremos un recorrido de los puntos más importantes del tema 1 y del tema 2.  Debido a que disponemos de un tiempo escaso, nos centraremos en los puntos fundamentales. 2
  • 4. Tema 1 4 INTRODUCCIÓN. 1. ¿Qué es una estructura de datos y para qué sirve? 2. Abstracción de datos. Concepto de tipo de datos abstracto. 3. Clasificación de las estructuras de datos. 1. Estructuras Básicas. 1. Arreglos unidimensionales, multidimensionales. 2. Conjunto. Descripción. 3. Registro. Descripción. 4. Implementación de las estructuras de datos. 1. Estática. 2. Dinámica. Descripción de apuntador. 3. Comparación de las implementaciones.
  • 5. Tema 1: Introducción Abstracción: Operación mental destinada a destacar las partes relevantes del objeto e ignorar otros aspectos irrelevantes del mismo. Evolución de los lenguajes de programación: Los lenguajes de programación han evolucionado de bajo nivel a alto nivel. John Guttag en1974 propuso el modelo de tipo abstracto de datos pero no fue hasta 1975 cuando Liskov lo propuso para el lenguaje CLU. Los lenguajes de programación son independientes de la máquina. Tipo abstracto de datos: Se puede definir como una terna de conjuntos (D, O, A), donde D representa el dominio; O es el conjunto de operaciones y A es el conjunto de axiomas. Es independiente del lenguaje de programación. Para llevarlos a cabo se necesitan las estructuras de datos y los procedimientos. Ej: Persona, perro. 5
  • 6. Tema 1: Introducción Estructura de datos: Las estructuras de datos son agrupaciones de datos, quizás de distinta naturaleza (tipo), relacionados (conectados) entre sí de diversas formas y las operaciones definidas sobre esa agrupación. Las estructuras de datos se caracterizan por el tipo de los elementos de la estructura, las relaciones definidas sobre los elementos y las operaciones permitidas sobre la estructura. Ej: Struct Persona { char Nombre[65]; char Direccion[65]; int AnyoNacimiento; } Fulanito; Tipos de datos: El tipo de datos, en un lenguaje de programación, define el conjunto de valores que una determinada variable puede tomar, así como las operaciones básicas sobre dicho conjunto. Definen cómo se representa la información y cómo se interpreta. Están los que vienen en el lenguaje de programación y los que puede definir el usuario. Ej: boolean, int, float, char, string… 6
  • 7. Tema 1: Introducción 7 Objeto Estructura de datos Métodos= + T.A.D Modelo de datos Operaciones= + Tipos de datos
  • 9. Tema 1: Estructura de los tipos de datos 9 Compuestos
  • 10. Tema 1: Introducción Arreglos: Un arreglo es un tipo de dato cuya implantación implica una colección de elementos finita y homogénea. Para acceder: nombre del arreglo y índice. Ej: int vector[100], float matriz[100 ][100] 10 Figura 1 Figura 2 Figura 3
  • 11. Tema1: Introducción Registros Permite agrupar diferentes elementos y manejarlos como un todo, además permite establecer relaciones lógicas entre ellos. Para acceder a cada uno de los elementos se utiliza un selector de campo o elemento. Ej: Ej: struct Producto {int cantidad; int precio ; int subtotal; }; producto.cantidad = 3; Enumerados Es un tipo de dato que permite agrupar diferentes identificadores bajo una denominación y asignar estos valores a las variables definidas para ello. Ej: Enum color = {rojo,verde, azul, amarillo}; 11
  • 12. Tema 1: Implementación de las estructuras de datos, Estática vs dinámica Implementación estática: No se modifica en tiempo de ejecución. Fácil de manejar y rápida de acceso pero se desperdicia memoria. Implementación dinámica: Su tamaño puede variar durante la ejecución del programa. Más complejo de implementar pero optimiza el programa. Complica el acceso y la optimización del programa. 12
  • 13. Tema 1: Apuntadores 13 Ejemplo 1; Int * p; // declaramos p p = new int; // reservamos espacio *p= 1; // asignamos el valor 1 delete p; // liberamos espacio de p Ejemplo 2; int i = 2; int *pi ; pi = &i; // ahora pi contiene la dirección de la variable i. int j = *pi; // j tomaría el valor 2, que es el contenido de la variable i anterior Ejemplo 3; int *i, *j; i= j; // i apunta donde apunta j *i = *j; // la variable *i tiene en su memoria el contenido de *j Un apuntador es una variable que contiene una posición de memoria, y por tanto se dice que apunta a esa posición de memoria. Tiene las operaciones de new y delete. Hay operadores como dirección “&” o “*”, que es el valor contenido y el operador “->” para acceder a un campo.
  • 15. Tema 2: Pilas 15 ESTRUCTURA DE DATO: PILAS. 1. Descripción. 2. Operaciones básicas. 1. Vaciar pila. 2. Revisar si está vacía. 3. Insertar y sacar un elemento. 4. Devolver el elemento que se encuentre en el tope.
  • 16. Tema 2: Pilas La pila es una lista de elementos caracterizada porque las operaciones de inserción y eliminación de elementos se realizan solamente en un extremo de la estructura que se llama tope. Estructura LIFO (Last In First Out): “Último en entrar primero en salir” Ejemplo: Platos o Libros 16
  • 18. Tema 2: Pilas  Estructura Pila ( Valor ) /* Valor será el tipo de datos que podremos guardar en la pila */  Operaciones CREAR_PILA ( ) → Pila APILAR ( Pila , Valor ) → Pila DESAPILAR ( Pila ) → Pila CIMA_PILA ( Pila ) → Valor PILA_VACIA ( Pila ) → Lógico  Axiomas ∀ stack ∈ Pila, x ∈ Valor se cumple que: PILA_VACIA ( CREAR_PILA ( ) ) → cierto PILA_VACIA ( APILAR ( stack, x ) ) → falso DESAPILAR ( CREAR_PILA ( ) ) → error DESAPILAR ( APILAR ( stack, x ) ) → stack CIMA_PILA ( CREAR_PILA ( ) ) → error CIMA_PILA ( APILAR ( stack, x ) ) → x 18
  • 19. Tema 2: Pilas Estáticas class Pila { public: Pila (void); // Constructor bool Apilar (Valor); bool Desapilar (void); bool CimaPila (Valor &); bool PilaVacia (void); private: Vector vect; int cima; }; typedef Valor Vector[MAX]; 19
  • 20. Tema 2: Pilas estáticas Constructor de la clase: Pila::Pila (void) { cima = 0; } bool Pila::PilaVacia (void) { return cima == 0; } bool Pila::CimaPila (Valor & x) { bool error; if (cima == 0) error = true; else { error = false; x = info[cima - 1]; } return error; } 20
  • 21. Tema 2: Pilas estáticas bool Pila::Apilar (Valor x) { bool error; if (cima == MAX) error = true; else { error = false; info[cima] = x; cima++; } return error; } bool Pila::Desapilar (void) { bool error; If (cima == 0) error = true; else { error = false; cima--; } return error; } 21
  • 22. Tema 2: Pilas dinámicas class Pila { public: Pila (void); // Constructor bool Apilar (Valor); bool Desapilar (void); bool CimaPila (Valor &); bool PilaVacia (void); private: Puntero cima; }; typedef struct Nodo * Puntero; struct Nodo { Valor info; Puntero sig; }; 22
  • 23. Tema 2: Pilas dinámicas Constructor de la clase: Pila::Pila (void) { cima = NULL; } bool Pila::PilaVacia (void) { return cima == NULL; } bool Pila::CimaPila (Valor & x) { bool error; if (cima == NULL) error = true; else { error = false; x = cima->info; } return error; } 23
  • 24. Tema 1: Insertar, extraer y visualizar 24
  • 25. Tema 2: Pilas dinámicas bool Pila::Apilar (Valor x) { bool error; Puntero p_aux; error = false; p_aux = new Nodo; p_aux->info = x; p_aux->sig = cima; cima = p_aux; return error; } bool Pila::Desapilar (void) { bool error; Puntero p_aux; if (cima == NULL) error = true; else { error = false; p_aux = cima; cima = cima->sig; delete p_aux; } return error; } 25