Está en la página 1de 18

CARACTERÍSTICAS

CURRICULARES
CARRERA : I N FO R MATI CA I N D
USTRIAL
MATERIA : INFORMÁTICA Y
LABORATORIO III
CÓDIGO : IYL-300
SEMESTRE : TERCERO (NIVEL
SUPERIOR)
PREREQUISITOS: IYL-200 - INT-200
 
HORAS TEÓRICAS : 2
HORAS LABORATORIO : 4
OBJETIVO
Conocer y utilizar los recursos técnicos y métodos en el manejo de
estructuras de datos estáticos y dinámicos, orientado a objetos para
la optimización y resolución de problemas complejos, desempeño,
y efectividad, como ser: pilas, colas, listas enlazadas, árboles y
grafos, en cada fase de desarrollo considerando aspectos
ambientales.
PARTICULARES
Los objetivos particulares son las siguientes:
- Aplicar eficientemente conocimientos de pseudocódigos y
algoritmos recursivos.
- Aplicar eficientemente técnicas de algoritmos con estructura de
datos estáticos
- Destreza en el diseño e implementación de pilas, colas, listas
enlazadas, árboles y g.
- Diseñar, implementación mediante herramientas de programación
CONTENIDO MINIMO
1.- FUNDAMENTOS A LAS ESTRUCTURAS DE DATOS
2.- PILAS Y COLAS
3.- RECURSIVIDAD
4.- LISTAS ENLAZADAS
5.- ÁRBOLES Y GRAFOS
6.- PROYECTO FINAL
BIBLIOGRAFÍA
1.‑ DATA ESTRUCTURES; Elis Horowitz, & Sarta, Sahni
2.‑ ESTRUCTURA DE DATOS; Cairo
3.‑ ESTRUCTURA DE DATOS; Seymour, Lipschutz
4.- ESTRUCTURA DE DATOS ORIENTADO A OBJETOS; Tenembaum
5.- PROGRAMACIÓN EN JAVA; Ceballos
6.- PROGRAMACIÓN EN JAVA; Deitel & Deitel
SISTEMA DE EVALUACIÓN
10 x14 LABORATORIO 140 PUNTOS
PROYECTO FINAL 60 PUNTOS
200/4 =50 PUNTOS
2 x10 EXAMEN PARCIALES 20 PUNTOS
EXAMEN FINAL 20 PUNTOS
PRACTICAS 5 PUNTOS
ASISTENCIA 5 PUNTOS
TOTAL 100
NOTA DE APROBACIÓN: 61
HISTORIA
Desde que las computadoras se inventaron, se puso en
estudio la administración de las memorias de las
computadoras mediante las estructuras de datos que tiene
como principal motivación y desarrollo de software dentro
el objetivo el estudio mediante los algoritmos de
recursividad de pilas, colas, listas, árboles y grafos. A
través de los años los diferentes lenguajes como el Algol,
Simula, Smaltholk, Pascal, Basic, C++, Java, NetBeans,
VisualNet, y otros hoy se sigue el estudio con tecnologías
y algoritmos más adelantadas, a pesar de que las
memorias de computadoras de hoy son tan grandes, como
es en Mb y Gb.
INTRODUCCIÓN
Las estructuras de datos tienen como principal motivación y
objetivo presentar tanto las estructuras de datos actuales como los
algoritmos para tratarlas. El estudio de las estructura de datos es
central para cualquier área de informática y computación. Éstas
representan el pilar, el sostén de cualquier tipo de software. Ya que
nos permite concentrarnos en las estructuras de datos estáticos y
dinámicos en los algoritmos asociados a ellas sin pensar en algún
lenguaje de programación en particular.
Los temas que se verán son las estructuras fundamentales,
representación lineal y no lineal, recursividad, pilas y colas, listas,
árboles y grafos.
Las mismas no se encuentran implementadas en los lenguajes de
programación, a excepción de algunos lenguajes de alto nivel.
CONTENIDO ANALÍTICO
1.1. Tipo de datos
1.2. Tipo abstracto de datos y estructura de
datos
1.3. Estructuras de datos fundamentales.
1.4. La Estructura Array.
1.5. Vectores.
1.6. Matrices.
1.7. La Estructura Registro.
1.8. Definición de registros.
1.9. Acceso a los campos de un registro.
1.10. Combinaciones entre arreglos y registros.
1.1. Tipo de datos
Cómo podemos solucionar los problemas y llevarlos a
Modelo estructuras.
Tipo de datos
Abstracto
Estructura de
Datos
Matemático
Programa en Programa en
Algoritmo
pseudolengua NetBeans,
informal
je C++

Proceso de solución de problemas


El tipo de datos de una variable es el conjunto de
valores que esta puede tomar: entero (integer), real
(float), booleano (boolean), carácter (char), cadenas
(String).
1.2. Tipo abstracto de datos y estructura de
datos
Un tipo de dato abstracto es un modelo matemático,
con varias operaciones definidas sobre ese modelo.
Un tipo de datos es una colección de valores;
Existen distintos tipos de datos que pueden realizar
distintas operaciones, las cuales son implementadas en
lenguaje de programación.
Tipos de datos predefinidos.- Los lenguajes de
programación siempre han tenido, como parte de su
estructura, definir una variable o una constante. TDP-
Tipo de Dato Predefinido, son enteros, reales,
booleanos, caracteres, string.
Tipo abstracto de datos y estructura
de datos.
Los lenguajes soportan tipos de datos, TDP-Tipo de
Dato Predefinido
Tipos de datos estructurados
Los lenguajes de programación permiten definir TDE
- Tipo de Dato Estructurados, manipularse como si
fuese una sola cosa y son:
Arreglos: Hacer referencia a cualquiera de las celdas
del arreglo es necesario el nombre del arreglo y el
valor de uno o más índices lo que permite tener acceso
aleatorio a cada elemento de la colección.
Registros: Permite agrupar diferentes elementos,
manejarlos y establecer relaciones lógicas entre ellos.
Tipo abstracto de datos y estructura
de datos
Tipos de datos abstractos básicos.- El TDA Entero
tiene como tipo el conjunto de números, operaciones
la suma, resta, multip. y división
El TDA Real tiene como tipo el conjunto de números
reales definido por las matemáticas y operaciones.
El TDA Carácter tiene conjunto de caracteres definido
por un alfabeto dado y operaciones de los operadores
relacionales (<, >, =, >=, <=,<>)
El TDA Booleano tiene como tipo el conjunto de
valores {verdadero, falso} y como operaciones el
AND, OR y NOT definidos en el Álgebra Booleana.
Tipos de datos abstractos compuestos.- El TDA
1Tipo abstracto de datos y estructura
de datos
Resumen de conceptos.- Abstracción: Habilidad que
permite tener en cuenta lo fundamental o relevante,
dejando de lado los detalles. Se aplica en la solución
de problemas o situaciones.
Abstracción de procedimientos: Facilidad que
presentan los lenguajes de programación de manera
que se los programas se puedan dividir en unidades
funcionales.
Estructura: Conjunto de partes fundamentales de un
sistema, incluidas sus relaciones, distribución y orden,
que caracterizan al sistema.
Estructura de datos: Implementación a la que se
1Tipo abstracto de datos y estructura
de datos

.
1Tipo abstracto de datos y estructura
de datos

.
Estructuras de datos fundamentales.
SI queremos hacer una agenda con los números de teléfono de
nuestros amigos. Necesitaríamos un array de Cadenas para
almacenar sus nombres, otro para sus apellidos y otro para sus
números de teléfono. Esto puede hacer que el programa quede
desordenado y difícil de seguir. Y aquí es donde vienen en
nuestro auxilio las estructuras. Para definir una estructura
usamos el siguiente formato:
struct nombre_de_la_estructura {
campos de estructura;
};
Es importante no olvidar el ';' del final, si no a veces se
obtienen errores extraños. Para nuestro ejemplo podemos crear
una estructura en la que almacenaremos los datos de cada
1Tipo abstracto de datos y estructura
struct estructura_amigo {
de datos
char nombre[30];
char apellido[40];
char telefono[10];
char edad; };
A cada elemento de esta estructura (nombre, apellido, teléfono) se le llama campo o
miembro. He declarado edad como char porque no conozco a nadie con más de 127
años. Ahora ya tenemos definida la estructura, pero aun no podemos usarla.
Necesitamos declarar una variable con esa estructura. struct estructura_amigo amigo;
Ahora la variable amigo es de tipo estructura_amigo. Para acceder al nombre de amigo
usamos:
amigo.nombre. Vamos a ver un ejemplo de aplicación de esta estructura. (En el
siguiente ejemplo los datos no se guardan en disco así que cuanda acaba la ejecución
del programa se pierden).
#include <stdio.h>
struct estructura_amigo { /* Definimos la estructura estructura_amigo */
char nombre[30];
char apellido[40];
1Tipo abstracto de datos y estructura
de datos
printf( "Escribe el nombre del amigo: " );
fflush( stdout ); scanf( "%s", &amigo.nombre );
printf( "Escribe el apellido del amigo: " ); fflush( stdout ); scanf( "%s",
&amigo.apellido );
printf( "Escribe el número de teléfono del amigo: " );
fflush( stdout ); scanf( "%s", &amigo.telefono );
printf( "El amigo %s %s tiene el número: %s.\n", amigo.nombre,
amigo.apellido, amigo.telefono );
}
Este ejemplo estaría mejor usando gets que scanf, ya que puede haber nombres
compuestos que scanf no cogería por los espacios.
Se podría haber declarado directamente la variable amigo:
struct estructura_amigo {
char nombre[30];
char apellido[40];
char telefono[10];
} amigo;
ARREGLOS Y REGISTROS
Las estructuras de matrices nos permiten simular registros,
String m[][] = new String [20][20];

También podría gustarte