Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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++
.
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];