Estructuras de Datos
Datos Generales
Nombre de la asignatura Nivel de formación Clave de la asignatura
Estructuras de Datos Licenciatura I5630
Prerrequisitos Area de formación Departamento
46 - Departamento de Sistemas de Información
Academia Modalidad Tipo de asignatura
PROGRAMACION Presencial Curso-Taller
Carga Horaria
Teoría Práctica Total Créditos
40 40 80 8
Trayectoria de la asignatura
Fundamentos de Programación - Estructura de Datos
Contenido del programa
Presentación
Las Estructuras de Datos sirven para organizar y manipular la información. En este curso se estudian las estructuras de datos y los algoritmos asociados a ellas en lenguaje “C/C++á. Cabe mencionar que el
diseño de algoritmos o programas fueron abordados en la materia de Fundamentos de Programación la cual es la base para la codificación de las operaciones para cada Estructura de datos.
Objetivos del programa
Objetivo general
El alumno conocerá las diferentes estructuras de datos y tipos de dato abstractos TDA, sus modelos matemáticos, sus representaciones en memoria, su implementación dinámica, así como las operaciones y algoritmos. Además de aplicar los TDA’s como son listas, pilas, colas, árboles y grafos en la resolución de problemas.





Contenido
Contenido temático
Unidad I. Estructuras o Registros

Unidad II. Apuntadores

Unidad III. Estructuras de datos lineales

Unidad IV. Estructuras de datos no lineales jerárquicas

Unidad V. Estructuras de datos no lineales multienlazadas.

Unidad VI. Métodos de Ordenamiento



Contenido desarrollado

Unidad I. Estructuras o Registros (10 horas)

Objetivo particular: El alumno conocerá las diferentes organizaciones de los datos, como se manipulan y como se emplean utilizando las estructuras o registros.

1.1 Definición de una estructura o registro

1.2 Tipos de datos definidos por el usuario (typedef)

1.3 Asignación de valores a los campos de un registro o estructura 

1.4 Acceso a los campos de un registro o estructura

1.5 Arreglos de estructuras

1.6 Estructuras anidadas

1.7 Paso de estructuras a funciones

1.8 Definición de Estructuras de datos

1.8.1 Estructuras de datos estáticas

1.8.2 Estructuras de datos dinámicas


Unidad II. Apuntadores (10 horas)

Objetivo particular: El alumno conocerá el concepto de apuntadores, como se manipulan y su empleo para la manipulación de direcciones de memoria.


2.1 Definición de apuntador

2.2 Declaración de apuntadores

2.3 Dirección o referencia de una variable

2.4 Asignación de apuntadores

2.5 Indirección o desreferencia de un variable tipo apuntador

2.6 Manipulación dinámica de memoria

2.6.1 Funciones para manejo de memoria dinámica: malloc, free

2.6.2 Funciones para manejo de memoria dinámica: new, delete

2.7 Apuntadores a estructuras



Unidad III. Estructuras de datos lineales (20 horas)

Objetivo particular: El alumno implementará los modelos y métodos para las diferentes estructuras de datos lineales representadas de forma dinámicas, mediante el uso de apuntadores.


3.1 Definición de tipo de dato Abstracto ( T.D.A)

3.2 Definición, Representación e Implementación grafica de las listas

3.2.1 Lista simplemente enlazada lineal (con apuntadores con encabezado)

3.2.2 Lista simplemente enlazada circular (con apuntadores con encabezado)

3.2.3 Lista doblemente enlazada lineal (con apuntadores con encabezado)

3.2.4 Lista doblemente enlazada circular (con apuntadores con encabezado)

3.3 T.D.A. “Pilaá (LIFO)

3.3.1 Definición de Pila (LIFO)

3.3.2 Representación e Implementación de Pilas (con apuntadores sin encabezado)

3.3.3 Aplicaciones de pilas

3.3.3.1 Conversión de expresiones infijas a postfijas

3.3.3.2 Control de Recursividad

3.4 T.D.A. “Colasá (FIFO)

3.4.1 Definición de Cola (FIFO)

3.4.2 Representación e Implementación de Colas (con apuntadores sin encabezado)

3.4.3 Aplicaciones de Colas

3.4.3.1 Colas de prioridad



Unidad IV. Estructuras de datos no lineales jerárquicas (20 horas)

Objetivo particular: El alumno conocerá las estructuras de datos no lineales monoenlazadas y multienlazadas usando la representación ligada de las mismas mediante el uso de apuntadores.


4.1 Teoría general de Árboles

4.2 Aplicaciones de Árboles

4.3 T.D.A. Árbol de Búsqueda Binaria (ABB)

4.3.1 Recorridos En-Orden, Pre-Orden y Post-Orden

4.3.2 Implementación dinámica de operaciones en ABB (búsqueda, inserción, eliminación)

4.4 Árboles Balanceados (AVL)

4.4.1 Implementación dinámica de operaciones en árboles AVL (búsqueda, inserción y eliminación)


Unidad V. Estructuras de datos no lineales multienlazadas (20 horas) 

Objetivo particular: El alumno conocerá la forma en que se crean los grafos, su representación matemática y como utilizarlos para realizar búsquedas en amplitud y profundidad.

5.1 Conceptos básicos Grafo

5.1.1 Grafos dirigidos

5.1.2 Grafos no dirigidos

5.2 Aplicaciones de los Grafos

5.3 Representación computacional de un grafo

5.3.1 Matriz de adyacencia

5.3.2 Lista de adyacencia

5.4 Recorridos en grafos

5.4.1 Búsqueda primero en Amplitud

5.4.2 Búsqueda primero en Profundidad

5.5 Ejemplo de ruta crítica


Unidad VI. Métodos de Ordenamiento (10 horas)

6.1 Ordenamiento de Burbuja (Bubble sort)

6.2 Ordenamiento por Selección

6.3 Ordenamiento por Inserción Directa

6.4 Ordenamiento por Inserción Binaria

6.5 Ordenamiento shell (shell sort)

6.6 Ordenamiento Quick Sort

6.7 Ordenamiento Merge Sort

6.8 Ordenamiento Heap Sort


Actividades prácticas
Consulta de libros, prácticas de laboratorio y proyecto final.
Metodología
En este curso, consiste en explicar las diferentes estructuras de datos, además se intenta que el alumno tome contacto con técnicas y metodologías que le ayuden a obtener unos programas de mayor calidad al hacer uso de dichas estructuras. Se pone de relieve la ventaja que supone el aislar partes de un programa considerando las estructuras de datos y la parte de control de un programa, que sean lo más independientes posibles entre sí y como puede ayudar ésto a la reutilización.
Evaluación

50% Exámenes (dos durante el semestre)

30% Tareas y Participación 

20% Proyecto Final

Bibliografía

Libro

Abstracción y Estructura de Datos en C++

Garrido, Antonio y Joaquín Fe (2006) Delta Publicaciones Unive No. Ed

ISBN: 9788496477261

Libro

Estructura de datos en C++

Luis Joyanes, Luis Joyanes Agu (2007) Mc Graw Hill No. Ed

ISBN: 9788448156459

Libro

Algoritmos, estructura de datos y programación orientada a objetos

Flórez Rueda Roberto, (2005) Ecoe, edic. Ltda No. Ed

ISBN: 9586483940

Libro

Estructuras de Datos y Métodos Algorítmicos: Ejercicios Resueltos

Oliet Marti Narciso (2003) Pearson No. Ed

ISBN: 9788420538495

Libro

Estructuras de datos. Un enfoque moderno

M. Rodríguez Artalejo, P. A. (2011) Editorial Complutense, No. Ed

ISBN: 8499380964, 9788499380964

Libro

Aprendiendo a programar paso a paso con C

Vicente Javier Eslava Muñoz (2012) Vicente Javier Eslava Muà No. Ed

ISBN: 8468610615, 9788468610610

Otros materiales

-

Perfil del profesor
Tener una licenciatura o especialidad afín con las ciencias de la computación. Deberá contar con experiencia en el desarrollo de sistemas utilizando programación estructurada.
Lugar y fecha de su aprobación

Última revisión

Zapopan, Jalisco, Septiembre de 2018

Instancias que aprobaron el programa


Academia de Programación- Colegio Departamental

Archivo (doucmento firmado)
Programa (Icono pdf)