Download Submódulo I

Document related concepts
no text concepts found
Transcript
Software
Submódulo I
••• IMPLEMENTA SISTEMAS CON LA APLICACIÓN
DE LOS DIFERENTES TIPOS DE ESTRUCTURAS DE DATOS •••
Guía Profesional elaborada por:
Oscar David Bustos Torres
DOCENTE DEL PLANTEL XOCHIMILCO
GESTIÓN
DITORIAL
Clemente Mora González
Jefe de Departamento
de Fomento Editorial
Leticia Mejia García
Coordinadora de Fomento Editorial
Miguel Antonio González Vidales
Gestión Administrativa
Ulises Ramírez Hernández
Coordinador de Diseño Gráfico
DIRECCIÓN GENERAL
Av. Panamá #199 Esquina con Buenos Aires.
Col. Cuauhtémoc Sur
Tels. 01 (686) 9 05 56 00 al 08
Correo Electrónico: [email protected]
Página Web: www.cecytebc.edu.mx
CICLO ESCOLAR 2011-2
Prohibida la reproducción total o parcial
de esta obra incluido el diseño tipográfico
y de portada por cualquier medio,
electrónico o mecánico, sin el consentimiento
por escrito del editor.
Nota:
Al personal Docente interesado en enriquecer el contenido del presente
documento, le agradecemos hacernos llegar sus comentarios o aportaciones
a los siguientes correos:
[email protected]
[email protected]
TORIO
DIREC
José Guadalupe Osuna Millán
Gobernador del Estado
de Baja California
Javier Santillán Pérez
Secretario de Educación
y Bienestar Social del Estado
CECYTE BC
Héctor Montenegro Espinoza
Director General
Olga Patricia Romero Cázares
Directora de Planeación
Argentina López Bueno
Directora de Vinculación
Jesús Gómez Espinoza
Director Académico
Ricardo Vargas Ramírez
Director de Administración y Finanzas
Alberto Caro Espino
Jefe del Departamento de Docencia
MUNICIPIO DE MEXICALI
Cristina de los Ángeles Cardona Ramírez
Directora del Plantel Los Pinos
Carlos Zamora Serrano
Director del Plantel Bella Vista
Jesús Ramón Salazar Trillas
Director del Plantel Xochimilco
Rodolfo Rodríguez Guillén
Director del Plantel Compuertas
Humberto Ignacio Ibarra Velazco
Director del Plantel Misiones
Francisco Javier Cabanillas García
Director del Plantel Vicente Guerrero
Cristopher Diaz Rivera
Director del Plantel San Felipe
MUNICIPIO DE TIJUANA
Martha Xóchitl López Félix
Directora del Plantel El Florido
María de los Ángeles Martínez Villegas
Directora del Plantel Las Águilas
Jorge Ernesto Torres Moreno
Director del Plantel Zona Río
Rigoberto Gerónimo González Ramos
Director del Plantel Villa del Sol
Joel Chacón Rodríguez
Director del Plantel El Pacífico
Efraín Castillo Sarabia
Director del Plantel El Niño
Benito Andrés Chagoya Mortera
Director del Plantel Cachanilla
Gabriel Valdéz Manjarrez
Director del Plantel Altiplano
Juan Martín Alcibia Martínez
Director del Plantel la Presa
MUNICIPIO DE ENSENADA
Alejandro Mungarro Jacinto
Director del Plantel Ensenada
Emilio Rios Macias
Director del Plantel San Quintín
MUNICIPIO DE ROSARITO
Manuel Ignacio Cota Meza
Director del Plantel Primo Tapia
Héctor Rafael Castillo Barba
Director del Plantel Rosarito Bicentenario
MUNICIPIO DE TECATE
Oscar Ambríz Salinas
Director del Plantel Tecate
MENSAJE DEL GOBERNADOR DEL ESTADO
Jóvenes Estudiantes de CECYTE BC:
La educación es un valuarte que deben apreciar durante
su estancia en el Colegio de Estudios Científicos y Tecnológicos
del Estado de Baja California, dado la formación y calidad
educativa que les ofrece la Institución y sus maestros.
Por ello, asuman el compromiso que el Gobierno del Estado
hace para brindarles educación media superior, a fin de que
en lo futuro tengan mejores satisfacciones de vida, y se
conviertan en impulsores y promotores del crecimiento exitoso,
con la visión que tiene nuestra entidad en el plano nacional.
Esta administración tiene como objetivo crear espacios
y condiciones apropiadas para que en un futuro inmediato, el
campo laboral tenga profesionistas técnicos de acuerdo al perfil
de la industria que cada día arriba a nuestra entidad; por lo
que los invito a ser mejores en sus estudios, en su familia
y en su comunidad.
En ustedes se deposita la semilla del esfuerzo y dedicación que
caracteriza a los bajacalifonianos. Son el estandarte generacional
que habrá de marcar la pauta de nuestro desarrollo.Como
Gobierno del Estado, compartimos el reto de ser formadores
de los futuros profesionistas técnicos que saldrán
de CECYTE BC.
Unamos esfuerzos, Gobierno, Sociedad, Maestros y Alumnos,
para brindar y recibir una mejor educación en Baja California,
ser punta de desarrollo humano, crecimiento industrial y
económico, y factor importante del progreso de México.
MENSAJE DEL SECRETARIO DE EDUCACIÓN
Alumno de CECYTE BC:
La educación es una herramienta que aumenta tus oportunidades de
desarrollo personal, y permite ampliar tu horizonte de posibilidades
de progreso económico y social.
Bajo esa perspectiva, el Gobierno del Estado de Baja California asume
con responsabilidad su compromiso con los jóvenes en la tarea de
crear espacios educativos en el nivel medio superior, y ofrecerles
programas de estudios tecnológicos que les permitan integrarse con
competencia a fuentes de trabajo y/o continuar estudios superiores.
El Colegio de Estudios Científicos y Tecnológicos del Estado de Baja
California, es un ejemplo de lo anterior. En las escuelas de esta
Institución, los estudiantes pueden encontrar el camino de la
superación, y el apoyo para alcanzar las metas que visualizan para
forjar su futuro.
Entre esos apoyos se encuentran la publicación y entrega de este
material educativo, que el CECYTE BC distribuye, con el objetivo de
que lo utilices en beneficio de tus estudios.
La tarea que han desarrollado maestros, alumnos y autoridades
aducativas en torno a CECYTE BC, han convertido a esta Institución
en un modelo para la formación de generaciones de profesionistas
técnicos que demanda el sector productivo que se asienta en la
región.
Además de eso, el Colegio se ha destacado por alentar el acercamiento
de los padres de familia con la escuela, como una acción tendiente
a fortalecer los vínculos que deben existir entre ellos, los docentes
y administrativos en el proceso educativo, por ser esta, una
responsabilidad compartida.
Por todo esto, te felicito por realizar tus estudios en un plantel de
CECYTE BC. Te exhorto a valorar este esfuerzo que hace la sociedad
a través de la Administración Estatal, y a que utilices con pertinencia
los materiales que se te otorgan para apoyar tu formación profesional.
PRESENTACIÓN
El documento que tienes en las manos significa un esfuerzo
realizado entre la Coordinación Nacional de los CECyTEs
y el Colegio de Estudios Científicos y Tecnológicos del Estado
de Baja California por proporcionarte material de estudio de
calidad para tu formación media superior.
Las Guías Profesionales de Mantenimiento, Electrónica,
Mecatrónica, Turismo, Producción, Análisis y Tecnología de los
Alimentos, Laboratorista Químico, Programador de Software,
Gestión Administrativa, Contabilidad y Música; comprenden
módulos y submódulos en donde encontrarás lecturas, ejercicios
y dinámicas que te servirán para adquirir un mayor
entendimiento de la Profesión Técnica que ejercerás en lo
futuro.
El tiempo realizado por cada uno de los maestros involucrados
en las Guías, representó horas de estudio, dedicación y esmero
para crear un documento fundamental en la educación.
Por ello, te invitamos a que obtengas el mejor provecho de
estos materiales de estudio, que fueron diseñados especialmente
para lo más preciado del Colegio: sus alumnos.
Atentamente
Héctor Montenegro Espinoza
DIRECTOR GENERAL DEL CECYTE BC
Técnico en
Programador de
Software
Módulo II
Estructurar los datos orientados a Objetos
Submódulo I
Implementar Sistemas con la Aplicación de los Diferentes Tipos de
Estructuras de Datos
11 12 Oscar David Bustos Torres
Baja California
Oscar David Bustos Torres
Baja California
Lic. Rosalba Reyes Rosales
Responsable de normatividad académica
Biol. Irasema G. Anaya Gálvez
Responsable de planes y programas de estudio
Ing. Armando Mendoza Cruz
Área académica
13 Al término del módulo el alumno será capaz de laborar en empresas
pequeñas que tengan la necesidad de un programa inicial teniendo por ende
un control computarizado en diferentes áreas de inserción tales como en el
sector público o privado ya sea en comercios, tiendas, consultorios, escuelas, etc. Así mismo podrás
Implementar sistemas con la aplicación de los diferentes tipos de estructuras de datos siendo capaz
de implementar sistemas con la aplicación de los diferentes tipos de estructuras de datos, por medio
de la elaboración de sus algoritmos correspondientes. Teniendo en cuenta esto como utilidad para
realizar mejores prácticas y dominando los diferentes tipos de estructuras como la manipulación de
estructuras básicas tales como arreglos, pilas, colas etc. como centro de la carrera de técnico
programador de software.
14 15 Técnico en Programador de Software
Módulo
II
Submódulo
I
Estructurar los datos orientados a objetos
Implementar sistemas con la aplicación de los diferentes tipos de estructuras
de datos.
Competencia 1
Manipular las estructuras de datos
Competencia 2
mediante la
Analizar estructuras de datos enlazadas.
implementación de programas.
Atributos de la Competencia
Atributos de la Competencia
Propiedades, características y reglas de la

Listas
estructura de datos

Operaciones con listas.

Introducción a las estructuras de datos

Tipos de listas

Arreglos

Arboles

Pilas

Características, longitud.

Colas

Tipos de arboles.

operaciones, tipos de cada una de ellas.

Métodos de ordenamiento.

Saberes
Saberes

Conocimientos de algoritmos

Conocimiento de elaboración de manuales.

Conocimiento del lenguaje de programación.

Utilización de las tic’s

Dominio en el uso de internet
16 17 Bienvenido, hoy iniciamos el módulo 2 “Estructurar los datos orientados a
objetos” de tu carrera de técnico en programador de software, esta guía
corresponde al sub módulo 2 titulado “Implementar sistemas con la aplicación de
los diferentes tipos de estructuras de datos” y te servirá de apoyo para que logres
desarrollar conocimientos, habilidades, destrezas y actitudes, que te permitirán
lograr las competencias laborales para tu vida.
Al término del módulo el alumno será capaz de aplicar los conceptos de programación orientada a
objetos utilizando la simbología UML, teniendo en cuenta esto como utilidad para realizar mejores
prácticas y dominando los diferentes tipos de estructura de datos así como la manipulación de
estructuras básicas tales como arreglos, pilas, colas etc. como centro de la carrera de técnico
programador de software.
Así el estudiante será capaz de laborar en áreas que tengan la necesidad de un programa inicial
teniendo por ende un control computarizado ya sea en diferentes áreas de inserción tales como en el
sector público o privado ya sea en comercios, tiendas, consultorios, escuelas, etc.
Debes tener presente que para lograr las competencias propuestas, se requiere de todo tu esfuerzo y
dedicación, así como de una actitud y disciplina apropiada en las competencias que serán
desarrolladas en el aula, taller y/o industria para ti.
18 19 Manipular las estructuras de datos mediante la
implementación de programas.
1
1.
2.
3.
4.
5.
Introducción a las estructuras de datos.
Arreglos y operaciones
Pilas y operaciones
Colas y operaciones
métodos de ordenamiento.
1.
2.
3.
4.
5.
Introducción a las estructuras de datos.
Arreglos
pilas
colas
métodos de ordenamiento.
1.
2.
3.
4.
Arreglos
pilas
colas
Métodos de ordenamiento.
1. Arreglos
2. pilas
3. colas
20 Implementar sistemas con la aplicación de los diferentes tipos
de estructuras de datos.
Si observamos un poco nuestro entorno tanto en nuestras
casas, oficinas, negocios y escuelas en cualquier parte puedes
encontrar por lo menos una computadora en la cual se
encuentra algún programa diseñado y elaborado por algún
programador sobre todo implementado en algún proceso
administrativo u operativo por ende te invitamos a que en esta
nueva etapa de tu carrera lograras implementar un pequeño
programa en algún lugar donde se requiera la aplicación de un programa.
Como te comente anteriormente en cualquier parte vemos computadoras y es parte de nuestro
mundo actual y vanguardista y cada vez es mayor frecuente el uso de programas y sistemas que
faciliten nuestra tareas y funciones que faciliten nuestra vida actual y moderna siendo evidente la
evolución de las computadoras como los programas para estos se requiere el diseño de nuevos
programas informáticos en todas las áreas ya sea administrativos, operativas, institucionales y sobre
todo en negocios pequeños.
Así mismo realizaremos un recordatorio e iniciaremos con algunos planteamientos de algoritmos en
vista de irte introduciendo a las estructuras de datos. Como inicio podrías ir analizando la búsqueda
de un lugar o establecimiento en el cual pudieses realizar un algoritmo para la solución de un
problema y en lo posterior puedas realizar un pequeño programa para dar solución a un problemática
específica, por el momento vamos a resolver algunos algoritmos prácticos con ayuda de tu maestro.
Recuerda también sacar del baul aquellos algoritmos realizados anteriormente para que puedas
practicar y ejercitar tu mente.
21 Tipos de Datos
 Simples
 Estructurados
La principal característica de los tipos de datos simples es que ocupan solo una casilla de
memoria, por lo tanto una variable simple hace referencia a un único valor a la vez.
Dentro de este grupo de datos se encuentran: enteros, reales, caracteres, booleanos.
22  Introducción a las estructuras de datos
 Propiedades, características y reglas de las estructuras de
ATRIBUTOS DE
LA
COMPETENCIA
datos.
 Arreglos
 Pilas
 Colas
 operaciones, tipos de cada una de ellas.

RESULTADO DE
APRENDIZAJE
Métodos de ordenamiento.
Al término del módulo el alumno será capaz de laborar en
empresas pequeñas que tengan la necesidad de un programa
inicial teniendo por ende un control computarizado en diferentes
áreas de inserción tales como en el sector público o privado ya
sea en comercios, tiendas, consultorios, escuelas, etc.
.
Como primera actividad es muy importante realizar un encuadre grupal para que el alumno
comprenda los algoritmos en la implementación de las estructuras de datos.
El docente emplea fotografías, diapositivas, presentaciones en power point o películas donde se
muestre el funcionamiento de distintos tipos estructuras de datos, explicando la utilidad que existe
entre el algoritmo y la estructura de datos, así como la implementación de sus aplicaciones.
El encuadre grupal
ayuda a comprender la
importancia de lograr la
competencia.
23 Nombre
Instrucciones
para el Alumno
Saberes a
adquirir
Introducción a las estructuras de datos
No.
1
Resuelve cada una de las preguntas que aparecen en la parte inferior a este
apartado.
Estructura de datos
Manera
Didáctica
de
Lograrlos
Investiga, comprende y resuelve cada una de
las preguntas que a continuación se
presentan
para el desarrollo de esta
competencia.
¿Qué es un dato?
¿Cuántos tipos de datos conoces?
¿Cuáles son los tipos de datos?
¿De qué tamaño es cada uno de los tipos de datos?
24 Introducción a las estructuras de datos.
Nombre
Instrucciones
para el Alumno
Competencias
Genéricas a
Desarrollar
Manera
Didáctica de
Lograrlas
No.
1
Analiza los ejemplos de los tipos de datos que se te muestra y aprenderás a
diferenciar entre un dato simple y uno estructurado.
 Participa y colabora de manera efectiva en equipos diversos Lograras diferenciar entre el un dato simple y uno estructurado
Dato simple
Dato estructurado.
Recuerda que a partir de este momento trabajaras con datos estructurados, ya que es muy fácil confundirte con los datos simples. 25 Nombre
Instrucciones
para el Alumno
Competencias
Genéricas a
Desarrollar
Manera
Didáctica de
Lograrlas
Introducción a las estructuras de datos

Aprende por iniciativa e interés propio a lo largo de la vida.
Encierra con un círculo los datos estructurados con color azul y subraya los datos
simples con color rojo.
int edad[5]
Char perro[10]
char gato
char botella[12][5]
Char apellido
float promedio[4]
Int jean[5]
Int zapatos[20]
1
Identifica cuáles son datos estructurados
Char Nombre[30]
Int silla
No.
float promedio
int mesa[3]
int salón[10]
int maestro[100]
int alumno
26 Nombre
Elabora un diagrama de flujo donde contenga datos simples y
estructurados.
No.
Competencia a
Desarrollar
Manipular las estructuras de datos mediante la implementación de programas.
Atributos de la
 Aplicar las estructuras de control para resolver problemas de cómputo.
 Manejar un IDE para desarrollo de código.
competencia
1
Instrucciones Manipula una interface IDE para conocer la estructura de un programa con
para el Alumno estructura de datos.
Instrucciones
para el
Docente
Proporcionar la información así como el IDE necesario para que los alumnos
elaboren la practica solicitada
Recursos
materiales de
apoyo
Papel, lápiz, computadora y manejo de un IDE para el desarrollo del código.
Competencias
Genéricas a
Desarrollar
Manera
Didáctica de
Lograrlas
Desarrolla innovaciones y propone soluciones a problemas a partir de métodos
establecidos.
El alumno muestra su interés y participa de manera entusiasta para desarrollar el
trabajo asignado.
27 Nombre
Arreglos y Operaciones con los arreglos.
No.
2
Instrucciones
Conoce los conceptos y operaciones de un arreglo para estructura de datos
para el Alumno
Saberes a
adquirir

Manipulación
Arreglos.
de
Manera
Didáctica
de
Lograrlos
Identifica y analiza las operaciones de las
estructuras de datos.
Un arreglo es una colección de datos finita homogénea y ordenada de elementos.
Finita: todo arreglo tiene un límite, es decir debe de determinarse cuál será el número máximo de
elementos que podrán formar parte del arreglo.
Homogénea: todos los elementos de un arreglo son del mismo tipo (todos enteros, todos carácter,
todos booleanos, pero nunca una combinación de distintos tipos).
Ordenada: se puede determinar cuál es primer elemento, el segundo, el tercero,…. Y el enésimo
elemento.
También los arreglos son las estructuras de datos más sencillas.
Definición: Los arreglos son un grupo de posiciones en memoria relacionadas
entre sí por el hecho de que todas tienen el mismo nombre y los datos que
contiene son todos del mismo tipo.
Los arreglos son entidades estáticas ya que conservan el mismo tamaño
durante toda la ejecución del programa.
Para poder referirnos a una posición en particular o a los datos dentro de esa
28 posición del arreglo, se especifica el nombre del arreglo y el número de posición del elemento. Las
posiciones generalmente se cuentan a partir del cero como primera posición.
Podemos clasificar a las operaciones en las que intervienen arreglos de la siguiente manera:
 Lectura/Escritura
 Asignación
Inserción
 Actualización Eliminación
Modificación
 Ordenación
 Búsqueda
29 Ejemplo de un arreglo de tipo entero de 10 posiciones.
30 Nombre
Instrucciones
para el Alumno
arreglos
No.
3
Identifica los tipos de arreglos en las siguientes figuras colocando el tipo de
arreglo que se refiere.
Competencias
Genéricas a
Desarrollar
Desarrolla innovaciones y propone soluciones a problemas a partir de métodos
establecidos.
Manera
Didáctica de
Lograrlas
Analiza, reflexiona y aplica los conocimientos adquiridos para la identificación de
los diferentes tipos de arreglos.
31 32 Nombre
Competencia a
Desarrollar
Atributos de la
competencia
Elabora un programa con las operaciones básicas de un arreglo
No.
2
Manipular las estructuras de datos mediante la implementación de programas.
 Aplicar las estructuras de control para resolver problemas de cómputo.
Manejar un IDE para desarrollo de código.

Desarrolla un programa en el lenguaje de programación sugerido por tu maestro,
Instrucciones
donde utilices un arreglo de tipo entero de 5 posiciones utilizando la operación de
para el Alumno
lectura y escritura, mostrando los datos capturados.
Instrucciones
para el
Docente
Recursos
materiales de
apoyo
Competencias
Genéricas a
Desarrollar
Manera
Didáctica de
Lograrlas
Proporcionar la información así como el IDE necesario para que los alumnos
elaboren la practica solicitada
Papel, lápiz, computadora y manejo de un IDE para el desarrollo del código.
Desarrolla innovaciones y propone soluciones a problemas a partir de métodos
establecidos.
El alumno muestra su interés y participa de manera entusiasta para desarrollar el trabajo
asignado.
33 Nombre
Competencia a
Desarrollar
Atributos de la
competencia
Elabora un programa con las operaciones básicas de un arreglo
No.
2
Manipular las estructuras de datos mediante la implementación de programas.
 Aplicar las estructuras de control para resolver problemas de cómputo.
Manejar un IDE para desarrollo de código.

Desarrolla un programa en el lenguaje de programación sugerido por tu maestro,
Instrucciones
donde utilices un arreglo de tipo flotante de 5 posiciones utilizando la operación de
para el Alumno
lectura y escritura, mostrando los datos capturados.
Instrucciones
para el
Docente
Recursos
materiales de
apoyo
Competencias
Genéricas a
Desarrollar
Manera
Didáctica de
Lograrlas
Proporcionar la información así como el IDE necesario para que los alumnos
elaboren la practica solicitada
Papel, lápiz, computadora y manejo de un IDE para el desarrollo del código.
Desarrolla innovaciones y propone soluciones a problemas a partir de métodos
establecidos.
El alumno muestra su interés y participa de manera entusiasta para desarrollar el
trabajo asignado.
34 Nombre
Competencia a
Desarrollar
Atributos de la
competencia
Elabora un programa con las operaciones básicas de un arreglo
No.
2
Manipular las estructuras de datos mediante la implementación de programas.
 Aplicar las estructuras de control para resolver problemas de cómputo.
Manejar un IDE para desarrollo de código.

Desarrolla un programa en el lenguaje de programación sugerido por tu maestro,
Instrucciones
donde utilices un arreglo de tipo carácter de 7 posiciones utilizando la operación de
para el Alumno
lectura y escritura, mostrando los datos capturados.
Instrucciones
para el
Docente
Recursos
materiales de
apoyo
Competencias
Genéricas a
Desarrollar
Manera
Didáctica de
Lograrlas
Proporcionar la información así como el IDE necesario para que los alumnos
elaboren la practica solicitada
Papel, lápiz, computadora y manejo de un IDE para el desarrollo del código.
Desarrolla innovaciones y propone soluciones a problemas a partir de métodos
establecidos.
El alumno muestra su interés y participa de manera entusiasta para desarrollar el trabajo
asignado.
35 Nombre
Instrucciones
para el Alumno
Saberes a
adquirir
Pilas y Operaciones con los arreglos
No.
3
Analiza y comprende las operaciones con las pilas.

Manipulación
Arreglos.
de
Manera
Didáctica
de
Lograrlos
Interpreta la información que se presenta a
continuación y determina la diferencia entre
una pila y la de un arreglo.
Introducción a las Pilas
Cuando se introdujeron al tema de arreglos lineales se mencionó que eran estructuras lineales,
analizar las operaciones de lectura, escritura, asignación, los datos pueden insertarse o eliminarse en
cualquier posición del arreglo.
Pero en el caso de las pilas solo deberán agregarse o quitarse solamente por un extremo, estas son
estructuras de datos lineales también, que tienen restricciones en cuanto a la posición en la cual
puedan realizarse la inserción y eliminación de elementos.
Una pila es una lista de elementos a la cual se puede insertar o eliminar elementos solo por uno de
los extremos.
En consecuencia, los elementos de una pila serán eliminados en el
orden inverso al que se insertaron, es decir, el último elemento que se
mete en la pila es el primero que se saca. Existen numerosos casos
prácticos en los que se utiliza el concepto de pila por ejemplo: pilas de
platos, pilas de latas en un supermercado, etc.
Las pilas son estructuras de datos que tienes dos operaciones
básicas: Push (para insertar un elemento) y pop (para extraer un elemento). Su Característica
fundamental es que al extraer se obtiene siempre el último elemento que acaba de insertarse. Por
esta razón también se conocen como estructuras de datos LIFO (del inglés Last In First Out). Una
posible implementación mediante listas enlazadas sería insertando y extrayendo siempre por el
principio de la lista. Gracias a las pilas es posible el uso de la recursividad (lo veremos en detalle en
el tema siguiente). La variable que llama al mismo procedimiento en el q está, habrá que guardarla
así como el resto de variables de la nueva llamada, para a la vuelta de la recursividad ir sacándolas,
esto es posible a la implementación de pilas.
Las pilas se utilizan en muchas aplicaciones que utilizamos con frecuencia. Por ejemplo, la gestión de
ventanas en Windows (cuando cerramos Una ventana siempre recuperamos la que teníamos detrás).
Otro ejemplo es la Evaluación general de cualquier expresión matemática para evitar tener que
Calcular el número de variables temporales que hacen falta.
36 Operaciones con pilas
Las operaciones que se pueden realizar con las pilas son las siguientes:
 Poner un elemento (push)
 Quitar un elemento (pop)
Considerando que se tiene una pila que puede almacenar un máximo numero de elementos y el
últimos de ellos esta indicado por TOPE.
37 Nombre
Instrucciones
para el Alumno
Competencias
Genéricas a
Desarrollar
Manera
Didáctica de
Lograrlas
Pilas y sus operaciones básicas
No.
3
Observa el siguiente ejemplo e identifica las operaciones de una pila
Desarrolla innovaciones y propone soluciones a problemas a partir de métodos
establecidos.
Analiza, reflexiona y comprende las operaciones existentes en una pila de datos.
38 Nombre
Instrucciones
para el Alumno
Pilas y operaciones básicas
No.
3
Interpreta el siguiente pseudocódigo de insertar y eliminar un dato dentro de una
pila
Competencias
Genéricas a
Desarrollar
Desarrolla innovaciones y propone soluciones a problemas a partir de métodos
establecidos.
Manera
Didáctica de
Lograrlas
Analiza, reflexiona y aplica los conocimientos adquiridos para la solución del
problema planteado.
1.Si TOPE<MAX // verifica que haya espacio libre entonces hacer TOPE TOPE+1 //Actualiza TOPE PILA[TOPE] DATO //Pone un nuevo elemento en la pila si no 2. escribir espacio lleno 39 1. Si TOPE>0 //verifica que la pila no este vacía Entonces hacer DATO PILA[TOPE] y TOPE TOPE‐1 //Actualiza tope Si no escribir espacio esta vacio 2. Fin de la condicional 1 40 Nombre
Competencia a
Desarrollar
Atributos de la
competencia
Pilas y sus operaciones básicas
No.
2
Manipular las estructuras de datos mediante la implementación de programas.
 Aplicar las estructuras de control para resolver problemas de cómputo.
Manejar un IDE para desarrollo de código.

Realiza un programa que contenga las operaciones básicas en una pila como
Instrucciones
para el Alumno insertar, eliminar y mostrar.
Instrucciones
para el
Docente
Proporcionar la información necesaria para que los alumnos elaboren la practica
solicitada.
Recursos
materiales de
apoyo
Computadora, dispositivo de almacenamiento y el IDE para la elaboración del
código.
Competencias
Genéricas a
Desarrollar
Manera
Didáctica de
Lograrlas
Desarrolla innovaciones y propone soluciones a problemas a partir de métodos
establecidos.
Analiza, reflexiona y aplica los conocimientos adquiridos para la solución del
problema planteado.
41 Nombre
Instrucciones
para el Alumno
Saberes a
adquirir
Colas y operaciones básicas
No.
4
Analiza e interpreta el concepto de una cola así como sus operaciones.
 Manipulación de
Arreglos.
Manera
Didáctica
de
Lograrlos
Interpreta la información que se presenta y
conoce la definición de una cola así como
sus operaciones básicas.
Una cola es una colección de elementos homogéneos (almacenados en dicha estructura), en
la misma se pueden insertar elementos por uno de los extremos, llamado frente, y retirar los
mismos por el otro extremo, denominado final.
Es importante aclarar que, tanto el frente como el
final de la cola, son los únicos indicados para
retirar e insertar elementos, respectivamente.
Esto nos indica que no podemos acceder
directamente a cualquier elemento de la cola,
sino solo al primero, o sea el que está o se
encuentra en el frente, y no se pueden insertar
elementos en cualquier posición sino solo por el
final, así el elemento insertado queda como
último.
Por esta razón la cola es denominada una
estructura F.I.F.O., o simplemente una lista
F.I.F.O., esto representa el acrónimo de las palabras inglesas “first in, first out” (primero en
entrar, primero en salir). Gráficamente podemos representarla como:
La cola fue recién creada y esta vacía. (Frente y final apuntan FINAL FRENTE a nil).
42 Si ahora le ingresamos el elemento A, la misma quedará se la siguiente manera:
Como A es el único A elemento, frente y final apuntan a él. FINAL nil FRENTE
Si a continuación se ingresa el elemento B, el frente de la cola continuará apuntando a A,
pero ahora el final apuntará al elemento recién ingresado.
B A El enlace se realiza desde el frente hacia el final. FINAL nil FRENTE
Al retirar un elemento, el frente apuntará al siguiente del elemento retirado y en el caso que
la cola quedara vacía, frente y final apuntarán a nil.
B A elemento retirado. FINAL nil FRENTE
FINAL FRENTE
nil nil
Ahora bien, una vez conocido el comportamiento de las colas veremos como se definen las
mismas y su forma de manejo, o "comportamiento" de la cola.
Para trabajar con una cola, así como para cualquier tipo de estructura abstracta, tendremos
que definir las operaciones que representen el comportamiento de la misma, para de esta
manera poder utilizarlas. Dichas operaciones son:
Insertar elemento.
Eliminar elemento.
Podemos definir una cola en forma dinámica implementándola como una lista simple y
respetando las restricciones de inserción (sólo se puede realizar a través del final) y
extracción (sólo se puede realizar por el frente).
A partir de la definición dada, podremos implementar una estructura de tipo cola en una
unidad de biblioteca de la siguiente manera.
43 Nombre
Colas y operaciones básicas
No.
4
Instrucciones
para el Alumno Analiza e interpreta las siguientes imágenes de colas de datos
Competencias
Genéricas a
Desarrollar
Manera
Didáctica de
Lograrlas
Desarrolla innovaciones y propone soluciones a problemas a partir de métodos
establecidos.
A continuación se muestran diferentes imágenes tipos de colas en diferentes
situaciones.
44 45 Nombre
Instrucciones
para el Alumno
Colas y operaciones básicas
No.
4
Elabora un mapa mental identificando las diferencias entre una pila y una cola
así como donde se puede aplicar una cola de datos.
Competencias
Genéricas a
Desarrollar
Desarrolla innovaciones y propone soluciones a problemas a partir de métodos
establecidos.
Manera
Didáctica de
Lograrlas
Analiza e interpreta la información anterior y comprende la forma de realizar las
operaciones básicas de una cola.
Las colas pueden
representarse mediante el
uso de:

Arreglos

Listas enlazadas
46 Nombre
Competencia a
Desarrollar
Atributos de la
competencia
Instrucciones
para el Alumno
Colas y operaciones básicas.
No.
4
Manipular las estructuras de datos mediante la implementación de programas.


Aplicar las estructuras de control para resolver problemas de cómputo.
Manejar un IDE para desarrollo de código.
1.
Instrucciones
para el
Docente
Proporcionar la información necesaria para que los alumnos elaboren la practica
solicitada.
Recursos
materiales de
apoyo
Computadora, dispositivo de almacenamiento y el IDE para la elaboración del
código.
Competencias
Genéricas a
Desarrollar
Desarrolla innovaciones y propone soluciones a problemas a partir de métodos
establecidos.
Manera
Didáctica de
Lograrlas
Nota: recuerda que en una cola el primero en entrar es el primero en salir. 47 Nombre
Instrucciones
para el Alumno
Saberes a
adquirir
Métodos de ordenamiento
No.
3
Analiza y aplica los métodos de ordenamiento.
 Manipulación de
Arreglos.
Manera
Didáctica
de
Lograrlos
Analiza e investiga los diferentes métodos de
ordenamientos.
¿Qué es ordenamiento?
Es la operación de arreglar los registros de una tabla en algún orden secuencial de acuerdo a un
criterio de ordenamiento.
El ordenamiento se efectúa con base en el valor de algún campo en un registro.
El propósito principal de un ordenamiento es el de facilitar las búsquedas de los miembros del
conjunto ordenado.
Ej. De ordenamientos:
Dir. telefónico, tablas de contenido, bibliotecas y diccionarios, etc.
El ordenar un grupo de datos significa mover los datos o sus referencias para que queden en una
secuencia tal que represente un orden, el cual puede ser numérico, alfabético o incluso alfanumérico,
ascendente o descendente.
¿Cuándo conviene usar un método de ordenamiento?
Cuando se requiere hacer una cantidad considerable de búsquedas y es importante el factor tiempo.
Tipos de ordenamientos:
Los 2 tipos de ordenamientos que se pueden realizar son: los internos y los externos.
Los internos:
48 Son aquellos en los que los valores a ordenar están en memoria principal, por lo que se asume que el
tiempo que se requiere para acceder cualquier elemento sea el mismo (a[1], a[500], etc).
Los externos:
Son aquellos en los que los valores a ordenar están en memoria secundaria (disco, cinta, cilindro
magnético, etc.), por lo que se asume que el tiempo que se requiere para acceder a cualquier
elemento depende de la última posición accesada (posición 1, posición 500, etc.).
Ordenamiento Burbuja (Bubblesort)
Descripción.
Este es el algoritmo más sencillo probablemente. Ideal para empezar. Consiste en ciclar repetidamente
a través de la lista, comparando elementos adyacentes de dos en dos. Si un elemento es mayor que el
que está en la siguiente posición se intercambian. ¿Sencillo no?
Ventajas:


Fácil implementación.
No requiere memoria adicional.
Desventajas:



Muy lento.
Realiza numerosas comparaciones.
Realiza numerosos intercambios.
Ordenamiento por Selección.
Descripción.
Este algoritmo también es sencillo. Consiste en lo siguiente:





Buscas el elemento más pequeño de la lista.
Lo intercambias con el elemento ubicado en la primera posición de la lista.
Buscas el segundo elemento más pequeño de la lista.
Lo intercambias con el elemento que ocupa la segunda posición en la lista.
Repites este proceso hasta que hayas ordenado toda la lista.
49 Ventajas:




Fácil implementación.
No requiere memoria adicional.
Realiza pocos intercambios.
Rendimiento constante: poca diferencia entre el peor y el mejor caso.
Desventajas:


Lento.
Realiza numerosas comparaciones.
Ordenamiento por Inserción
Este algoritmo también es bastante sencillo. ¿Has jugado cartas?. ¿Cómo las vas ordenando cuando las
recibes? Yo lo hago de esta manera: tomo la primera y la coloco en mi mano. Luego tomo la segunda y
la comparo con la que tengo: si es mayor, la pongo a la derecha, y si es menor a la izquierda (también
me fijo en el color, pero omitiré esa parte para concentrarme en la idea principal). Después tomo la
tercera y la comparo con las que tengo en la mano, desplazándola hasta que quede en su posición final.
Continúo haciendo esto, insertando cada carta en la posición que le corresponde, hasta que las tengo
todas en orden. ¿Lo haces así tú también? Bueno, pues si es así entonces comprenderás fácilmente este
algoritmo, porque es el mismo concepto.
Para simular esto en un programa necesitamos tener en cuenta algo: no podemos desplazar los
elementos así como así o se perderá un elemento. Lo que hacemos es guardar una copia del elemento
actual (que sería como la carta que tomamos) y desplazar todos los elementos mayores hacia la
derecha. Luego copiamos el elemento guardado en la posición del último elemento que se desplazó.
Ventajas:


Fácil implementación.
Requerimientos mínimos de memoria.
Desventajas:


Lento.
Realiza numerosas comparaciones.
50 El método de ordenamiento Quick Sort es actualmente el más eficiente y veloz de los métodos de
ordenación interna. Es también conocido con el nombre del método rápido y de ordenamiento por
partición, en el mundo de habla hispana.
Este método es una mejora sustancial del método de intercambio directo y recibe el nombre de Quick
Sort por la velocidad con que ordena los elementos del arreglo. Su autor C.A. Hoare lo bautizó así.
La idea central de este algoritmo consiste en los siguiente:
Se toma un elemento x de una posición cualquiera del arreglo.
Se trata de ubicar a x en la posición correcta del arreglo, de tal forma que todos los elementos que se
encuentran a su izquierda sean menores o iguales a x y todos los elementos que se encuentren a su
derecha sean mayores o iguales a x.
Se repiten los pasos anteriores pero ahora para los conjuntos de datos que se encuentran a la
izquierda y a la derecha de la posición correcta de x en el arreglo.
Ejemplo:
A: 15,67,08,16,44,27,12,35
Se selecciona A[i] x=15
Primera pasada (DER-IZQ)
A[8] >= x 35 >= 15 No hay intercambio
A[7] >= x 12 >= 15 Si hay intercambio
A: 12,67,08,16,44,27,15,35
(IZQ-DER)
A[2] < = X 67 < = 15 Si hay intercambio
A:12,15,08,16,44,27,67,35
2da. Pasada (DER-IZQ)
A[6] >= x 27 >= 15 No hay intercambio
A[5] >= x 44 >= 15 No hay intercambio
A[4] >= x 16 >= 15 No hay intercambio
A[3] >= x 08 >= 15 Si hay intercambio
A: 12,08,15,16,44,27,67,35
Como el recorrido de izquierda a derecha debería iniciarse en la misma posición
donde se encuentra el elemento x, el proceso se termina ya que el elemento x, se
encuentra en la posición correcta.
A: 12, 08, 15, 16, 44, 27, 67, 35
1er 2do Conjunto
Conjunto
16, 44, 27, 67, 35
51 x16
(DER-IZQ)
A[8]>=x No hay intercambio
A[7]>=x No hay intercambio
A[6]>=x No hay intercambio
A[5]>=x No hay intercambio
A: 12, 08, 15, 16, 44, 27, 67, 35
xß44
(DER-IZQ)
A[8]>= x Si hay intercambio
A: 12, 08, 15, 16, 35, 27, 67, 44
(IZQ-DER)
A[6] < = x No hay intercambio
A[7] < = x Si hay intercambio
12, 08, 15, 16, 35, 27, 44, 67
12, 08, 15, 16, 35, 27, 44, 67
35, 27, 44, 67
xß35
(DER-IZQ)
A[8] >= x No hay intercambio
A[7] >= x No hay intercambio
A[6] >= x Si hay intercambio
12, 08, 15, 16, 27, 35, 44, 67
12,08
xß12
(DER-IZQ)
A[2]>=x Si hay intercambio
EL VECTOR ORDENADO:
08,12,15,16,27,35,44,67
52 Nombre
Ejemplo del método de la burbuja y quicksort.
No.
2
Analiza el método de la burbuja e implementa en donde se puede utilizar este
Instrucciones
método.
para el Alumno
Competencias
Genéricas a
Desarrollar
Manera
Didáctica de
Lograrlas
Desarrolla innovaciones y propone soluciones a problemas a partir de métodos
establecidos.
Analiza el siguiente método de ordenamiento.
. Un ejemplo
Vamos a ver un ejemplo. Esta es nuestra lista:
4-3-5-2-1
Tenemos 5 elementos. Es decir, TAM toma el valor 5. Comenzamos comparando el primero con el
segundo elemento. 4 es mayor que 3, así que intercambiamos. Ahora tenemos:
3-4-5-2-1
Ahora comparamos el segundo con el tercero: 4 es menor que 5, así que no hacemos nada.
Continuamos con el tercero y el cuarto: 5 es mayor que 2. Intercambiamos y obtenemos:
3-4-2-5-1
Comparamos el cuarto y el quinto: 5 es mayor que 1. Intercambiamos nuevamente:
3-4-2-1-5
Repitiendo este proceso vamos obteniendo los siguientes resultados:
3-2-1-4-5
2-1-3-4-5
1-2-3-4-5
53 El procedimiento de la burbuja es el siguiente:
Ir comparando desde la casilla 0 numero tras número
hasta encontrar uno mayor, si este es realmente el
mayor de todo el vector se llevará hasta la última
casilla, si no es así, será reemplazado por uno mayor
que él.
Este procedimiento seguirá así hasta que haya
ordenado todas las casillas del vector.
Una de las deficiencias del algoritmo es que ya
cuando a ordenado parte del vector vuelve a
compararlo cuando esto ya no es necesario.



A continuación se ilustra otro Ejemplo para una mejor comprensión del método:
Vector
Variables
pos
a[j+1] inicio
0
1
2
3
4
5
6
7
44
55
12
42
94
18
6
67
i
j
a[j]
0
1
55
12
cambio
44
12
55
42
94
18
6
67
0
2
55
42
cambio
44
12
42
55
94
18
6
67
0
4
94
18
cambio
44
12
42
55
18
94
6
67
0
5
94
6
cambio
44
12
42
55
18
6
94
67
0
6
94
67
cambio
44
12
42
55
18
6
67
94
1
0
44
12
cambio
12
44
42
55
18
6
67
94
1
1
44
42
cambio
12
42
44
55
18
6
67
94
1
3
55
18
cambio
2
42
44
18
55
6
67
94
1
4
55
6
cambio
12
42
44
18
6
55
67
94
2
2
44
18
cambio
12
42
18
44
6
55
67
94
2
3
44
6
cambio
12
42
18
6
44
55
67
94
3
1
42
18
cambio
12
18
42
6
44
55
67
94
3
2
42
6
cambio
12
18
6
42
44
55
67
94
4
1
18
6
cambio
12
6
18
42
44
55
67
94
5
0
12
6
ordenado 6
12
18
42
44
55
67
94
54 55 Nombre
Investiga los diferentes tipos de métodos de ordenamiento.
Instrucciones
para el Alumno
Investiga y analiza los diferentes métodos de ordenamiento.
Competencias
Genéricas a
Desarrollar
Desarrolla innovaciones y propone soluciones a problemas a partir de métodos
establecidos.
Manera
Didáctica de
Lograrlas
Investiga los distintos tipos de de los métodos de ordenamiento e idéntica el más
recomendable para la aplicación de un programa.
No.
2
Nota: recuerda encontrar el método de ordenamiento que para ti es el más indicado utilizar en un programa. 56 Nombre
Competencia a
Desarrollar
Aplicación de estructuras de datos en problemas diversos.
No.
1
Manipular las estructuras de datos mediante la implementación de programas.
 Aplicar las estructuras de control para resolver problemas de cómputo.
 Manejar un IDE para desarrollo de código.
 Analizar las necesidades de estructura de datos en problemas particulares.
competencia
 Estructurar arreglos para la manipulación de información.
Elabora un programa donde se pueda utilizar los distintos tipos de datos en un
Instrucciones
arreglo, pila o cola, donde se pueda aplicar como herramienta administrativa en la
para el Alumno
vida real.
Atributos de la
Instrucciones
para el
Docente
Proporcionar la información necesaria para que los alumnos elaboren la practica
solicitada.
Recursos
materiales de
apoyo
Computadora, dispositivo de almacenamiento y el IDE para la elaboración del
código.
Competencias
Genéricas a
Desarrollar
Manera
Didáctica de
Lograrlas
Desarrolla innovaciones y propone soluciones a problemas a partir de métodos
establecidos.
 Aprende por iniciativa en interés propio a lo largo de la vida.

Elaborando programas con aplicación de una herramienta administrativa o
tecnológica.
57 Como te habrás dado cuenta hasta el momento solo
hemos estudiado el funcionamiento las estructuras
de
datos
estáticas
implementar sistemas
dentro
del
submodulo
con la aplicación de los
diferentes tipos de estructuras de datos.
Llevándote
por
el
interesante
mundo
del
programador, así como se te facilito esta primera
competencia esperamos sigas preparándote día a día por el mundo de la informática.
Te felicitamos porque si tú llegaste hasta aquí significa que sigues avanzando, y esperamos
que nada ni nadie te detenga. Te invitamos a que continúes, pregunta a tu maestro todas las
dudas que tengas y verás que el futuro dentro de la carrera de técnico programador de
software será mucho mejor para ti.
Date cuenta ahora, tú sabes utilizar y diferenciar las características entre los arreglos, pilas y
colas así como desarrollar y realizar operaciones entre los diferentes estructuras de control.
FELICIDADES!!!! Y TE INVITAMOS A QUE AHORA APRENDAS A UTILIZAR LAS LISTAS
ENLAZADAS DE DATOS ASI COMO LOS ARBOLES…..
58 Analizar estructuras de datos enlazadas.
2
1. Listas enlazadas
2. Árbol
1. Listas enlazadas
2. Árbol
1. Listas enlazadas
2. Árbol
1. Práctica
59 Analizar estructuras de datos enlazadas.
Las estructuras de datos presentadas hasta el momento (Arreglos y
Registros) y se le denominan estáticas, reciben ese nombre debido
a que durante la compilación se le asigna un espacio de memoria y
este permanece inalterable a lo largo de la ejecución del programa.
Es decir las variables no pueden crearse o destruirse durante la
ejecución del programa.
¿Cuál será la diferencia entre las estructura de datos
dinámicas contra las estáticas? A continuación se muestra una grafica de los tipos de
estructuras de datos lineales y las no lineales.
Estructuras lineales
Estructuras no lineales
60  Listas
ATRIBUTOS DE
LA
COMPETENCIA
 Operaciones con listas.
 Tipos de listas
 Arboles
 Características, longitud.

RESULTADO DE
APRENDIZAJE
Tipos de arboles.
A lo largo de esta competencia el instructor diseñara
actividades para que puedas conceptualizar e identificar los
diferentes tipos de estructuras de datos enlazadas.
.
Como primera actividad es muy importante realizar un encuadre grupal para que el alumno
comprenda las posibles aplicaciones de las estructura de datos enlazadas.
El docente muestra las operaciones con que cuentan las estructuras de datos enlazadas así como las
características y propiedades de los árboles y el funcionamiento de cada uno de los tipos de listas
enlazadas dando conceptos básicos y realizando actividades para poder identificar los tres tipos de
listas que conocerás así como las operaciones que podrás realizar cono cada una de ellas.
61 Nombre
Instrucciones
para el Alumno
Listas enlazadas
1
Analiza y comprende el concepto de una lista enlazada así como sus
operaciones
 Listas
Saberes a
adquirir
No.
 Operaciones con
listas.
Manera
Didáctica
de
Lograrlos
Identifica el concepto, operaciones y los tipos
de listas enlazadas.
 Tipos de listas
Ahora se introduce un nuevo concepto, el de estructuras dinámicas de datos. Este tipo de
estructura es generado a partir de un tipo de dato conocido con el nombre de puntero o
referencia.
Concepto de una lista.
Una lista es una colección de elementos generalmente llamados nodos.
El orden entre los nodos se establece por medio de punteros, es decir, por direcciones o
referencias a otros nodos.
En la siguiente figura se presenta la estructura de un nodo.
En general un nodo consta de dos partes:
1. Un campo información que será el tipo de datos se
quiera almacenar en la lista.
2. Un campo liga de tipo puntero, que se utiliza para
establecer la liga o el enlace con otro nodo de la lista.
Recuerda: Que si el
nodo
fuera
el
último de la lista,
este campo tendrá
como valor Nil
(vacío). 62  Crear
 Insertar
 Eliminar
 Consultar (Búsqueda)
 Modificar (actualizar)
Tipos de listas enlazadas
Lista
Circular
Listas
Listas
Doblemente
Ligadas
Una lista doblemente ligada es una colección de nodos en la cual cada nodo tiene dos punteros
uno de ellos apuntando a su predecesor y otro a su sucesor.
63 Nombre
Instrucciones
para el Alumno
Competencias
Genéricas a
Desarrollar
Manera
Didáctica de
Lograrlas
Listas enlazadas.
No.
1
Identifica las listas enlazadas
Utiliza las tecnológicas de la información y comunicación para procesar e
interpretar información.
Identifica los diferentes tipos de listas enlazadas en las estructuras de datos.
p
Nil
El primer nodo de la lista esta apuntado por una variable P de tipo puntero (P almacena la dirección
del primer nodo). El campo liga del último nodo de la lista, tiene un valor Nil que indica que dicho
nodo no apunta a ningún otro.
64 Listas Circulares
Las listas circulares tienen la característica de que el último elemento de la misma apunta al primero.
Ejemplo grafico de una lista circular con nodo de cabecera
Ejemplo de una lista doblemente ligada
65 Es el caso más simple. Partiremos de una lista con uno
o más nodos, y usaremos un puntero auxiliar, nodo:
1. Hacemos que nodo apunte al primer elemento
de la lista, es decir a Lista.
2. Asignamos a Lista la dirección del segundo nodo de la lista: Lista->siguiente.
3. Liberamos la memoria asignada al primer nodo, el que queremos eliminar.
Si no guardamos el puntero al primer nodo
de actualizar Lista, después nos resultaría
imposible liberar la memoria que ocupa. Si
liberamos la memoria antes de actualizar
perderemos el puntero al segundo nodo.
antes
Lista,
Si la lista sólo tiene un nodo, el proceso es también válido, ya que el valor de Lista->siguiente
es NULL, y después de eliminar el primer nodo la lista quedará vacía, y el valor de Lista será
NULL.
De hecho, el proceso que se suele usar para borrar listas completas es eliminar el primer
nodo hasta que la lista esté vacía.
En todos los demás casos, eliminar un nodo se puede hacer siempre del mismo modo.
Supongamos que tenemos una lista con al menos dos elementos, y un puntero al nodo
anterior al que queremos eliminar. Y un puntero auxiliar nodo.
El proceso es parecido al del caso anterior:
1. Hacemos que nodo apunte al nodo que queremos borrar.
2. Ahora, asignamos como nodo siguiente del nodo anterior, el siguiente al que
queremos eliminar: anterior->siguiente = nodo->siguiente.
3. Eliminamos la memoria asociada al nodo que queremos eliminar.
Si el nodo a eliminar es el último, es procedimiento es igualmente válido, ya que anterior
pasará a ser el último, y anterior->siguiente valdrá NULL.
66 Nombre
Instrucciones
para el Alumno
Listas enlazadas
No.
2
Investiga los conceptos que te indicara tu maestro para la comprensión del tema
de listas enlazadas.
Competencias
Genéricas a
Desarrollar
Utiliza las tecnológicas de la información y comunicación para procesar e
interpretar información.
Manera
Didáctica de
Lograrlas
Realiza investigación para la comprensión de las estructuras dinámicas de datos.
Investiga los siguientes conceptos:
 Estructuras dinámicas de datos
 Puntero
 Referencia
Recuerda que debes
entregar tu investigación
en la fecha que te indique
tu maestro.
67 Nombre
Instrucciones
para el Alumno
Árbol
2
Conoce y aplica el concepto de árbol así como sus características.
 Arboles
Saberes a
adquirir
No.
 Características,
longitud.
Tipos de arboles.
Manera
Didáctica
de
Lograrlos
Comprende el concepto de un árbol así como
los diferentes tipos, características con que
cuenta un árbol.
Los arboles representan estructuras no-lineales y dinámicas de datos más importantes en
computación.
Dinámicas, porque la estructura árbol puede cambiar durante la ejecución de un programa.
No-lineales, porque cada elemento del árbol puedan seguirle varios elementos.
Representación de las estructuras de datos más importantes clasificadas de acuerdo a su
estaticidad y dinamismo.
Estructuras Estáticas
Estructuras Dinámicas
Arreglos
Listas
Registros
Conjuntos
Arboles
Es de observar que las
pilas y las colas no fueron
consideradas
en
esta
clasificación, puesto que
dependen de la estructura
que
utilice
para
implementarlas.
68 Nombre
Instrucciones
para el Alumno
Competencias
Genéricas a
Desarrollar
Manera
Didáctica de
Lograrlas
Representación grafica de las estructuras árbol.
No.
1
Identifica los tipos de representación grafica de las estructuras dinámicas.
Desarrolla innovaciones y propone soluciones a problemas a partir de métodos
establecidos.
Identifica los distintos tipos de arboles.
árbol binario
Árboles Binarios Completos
Árbol binario en memoria
Al analizar la estructura árbol se introduce al concepto de estructuras de ramificación entre nodos. 69 Inserción
A la hora de insertar un nuevo dato en un árbol 2-3 se hace de forma que se mantenga el
equilibrio en el árbol. La capacidad de tener uno o dos elementos en cada nodo ayuda a
conseguirlo.
Pseudo código de inserción en un árbol 2-3
Si el árbol esta vació
Entonces crea un nuevo nodo y colocar el en el lado izquierdo del nodo.
Si ya hay un elemento y existe espacio en el nodo hacer
Si r1 es menos que el elemento
Entonces el elemento 0 se coloca a la derecha.
Sino
Si r1 es mayor que el elemento
Entonces el elemento se coloca del lado izquierdo y r1 del lado derecho.
Sino
Si el nodo esta lleno se parte en dos nodos del mismo nivel, se crea un nuevo nodo
y se reparten los tres elementos (dos elementos del nodo y el nuevo elemento)
Ejemplos
A continuación se ofrecen ejemplos concretos para ilustrar el mecanismo de inserción:
70 Codigo para Insertar un nodo en C
tipo_elmto = registro
clave:tipo_clave;
{los demás campos necesarios}
freg;
tipos_nodo = (hoja, interior);
nodo_dos_tres =
registro
clase:tipos_nodo;
selección
clase=hoja:(elmto:tipo_elmto);
clase=interior:(primer_hijo,segundo_hijo, tercer_hijo: diccionario;
menor_de_segundo, menor_de_tercero:tipo_clave)
fsel
freg
diccionario = ↑nodo_dos_tres
Pseudocodigo de Inserción
algoritmo inserta1(e/s nodo:diccionario;
ent x:tipo_elmto; {x se insertará en el subárbol de nodo}
sal pt_nuevo:diccionario;
{puntero al nodo recién creado a la derecha de nodo}
sal menor:tipo_clave) {elmto más pequeño del subárbol al que apunta pt_nuevo}
Pseudocodigo del programa principal:
principal
pt_nuevo:=nil;
si nodo es una hoja entonces
si x no es el elemento que está en nodo entonces
crea un nodo nuevo apuntado por pt_nuevo;
pone x en el nodo nuevo;
menor:=x.clave
fsi
sino {nodo es un nodo interno}
sea w el hijo de nodo a cuyo subárbol pertenece x;
inserta1(w, x,pt_atrás,menor_atrás);
si pt_atrás≠nil entonces
inserta el puntero pt_atrás entre los hijos de nodo justo a la derecha de w;
si nodo tiene cuatro hijos entonces
crea un nodo nuevo apuntado por pt_nuevo;
da al nuevo nodo los hijos 3º y 4º de nodo;
ajusta menor_de_segundo y menor_de_tercero en nodo y el nodo nuevo;
coloca menor como la menor clave entre los hijos del nodo nuevo
fsi
fsi
fsi
fin
// WC.java
import java.io.*;
71 class TreeNode {
String word;
int count = 1;
TreeNode left;
TreeNode right;
// Word being stored.
// Count of words seen in text.
// Left subtree reference.
// Right subtree reference.
public TreeNode (String word) {
this.word = word;
left = right = null;
}
public void insert (String word) {
int status = this.word.compareTo (word);
if (status > 0) {
// word argument precedes current word
// If left-most leaf node reached, then insert new node as
// its left-most leaf node. Otherwise, keep searching left.
if (left == null)
left = new TreeNode (word);
else
left.insert (word);
}
else
if (status < 0) {
// word argument follows current word
// If right-most leaf node reached, then insert new node as
// its right-most leaf node. Otherwise, keep searching right.
if (right == null)
right = new TreeNode (word);
else
right.insert (word);
}
else
this.count++;
}
}
class WC {
public static void main (String [] args) throws IOException {
int ch;
TreeNode root = null;
// Read each character from standard input until a letter
// is read. This letter indicates the start of a word.
while ((ch = System.in.read ()) != -1) {
// If character is a letter then start of word detected.
if (Character.isLetter ((char) ch)) {
// Create StringBuffer object to hold word letters.
StringBuffer sb = new StringBuffer ();
72 // Place first letter character into StringBuffer object.
sb.append ((char) ch);
// Place all subsequent letter characters into StringBuffer
// object.
do {
ch = System.in.read ();
if(Character.isLetter ((char) ch))
sb.append((char) ch);
else
break;
}
while (true);
// Insert word into tree.
if (root == null)
root = new TreeNode (sb.toString ());
else
root.insert (sb.toString ());
}
}
display (root);
}
static void display (TreeNode root) {
// If either the root node or the current node is null,
// signifying that a leaf node has been reached, return.
if (root == null)
return;
// Display all left-most nodes (i.e., nodes whose words
// precede words in the current node).
display (root.left);
// Display current node's word and count.
System.out.println ("Word = " + root.word + ", Count = " +
root.count);
// Display all right-most nodes (i.e., nodes whose words
// follow words in the current node).
display (root.right);
}
}
73 Nombre
Instrucciones
para el Alumno
Competencias
Genéricas a
Desarrollar
Manera
Didáctica de
Lograrlas
Arboles
No.
2
Investiga el concepto y la representación de cada una de las formas de
representar las estructuras de un árbol.
Desarrolla innovaciones y propone soluciones a problemas a partir de métodos
establecidos.
Investiga las diferentes formas de representar un árbol
 Diagrama de Venn
 Anidación de Paréntesis
 Notación Decimal de Dewey
 Notación Identada
 Grafo
74 Escribe sobre la línea el tipo de árbol a que se hace referencia según su representación
grafica.
75 Nombre
Competencia a
Desarrollar
Arboles con estructuras
No.
1
 Analizar las necesidades de estructura de datos en problemas particulares.
Atributos de la
competencia
 Identifica la utilización de estructuras de datos enlazadas.
y Comprende de las estructuras de datos enlazadas en el
Instrucciones Desarrolla
para el Alumno planteamiento de un problema dando solución con ellas
Instrucciones
para el
Docente
Recursos
materiales de
apoyo
Competencias
Genéricas a
Desarrollar
Manera
Didáctica de
Lograrlas
Proporciona las herramientas necesarias para desarrollar y dar solución a una
problemática con las estructuras enlazadas.
Computadora y su dispositivo de almacenamiento
Desarrolla innovaciones y propone soluciones a problemas a partir de métodos
establecidos.
Investiga y desarrolla innovaciones dando solución administrativa a alguna
problemática.
Los árboles binarios tienen múltiples aplicaciones ya que se les puede utilizar para representar una
estructura en la cual es posible tomar decisiones con dos opciones en distintos puntos de un
proceso, para representar un árbol genealógico (construido en forma ascendente y donde muestran
los ancestros de un individuo dado), para representar la historia de un campeonato de tenis
(construido en forma ascendente y en donde existe un ganador, 2 finalistas, 4 semifinalistas y así
sucesivamente) para representar expresiones algebraicas construidas con operadores binarios , con
esto citamos algunos ejemplos de sus múltiples usos.
76 Como te habrás dado cuenta conocer las estructuras dinámicas
como las listas enlazadas y las estructuras árbol resulta interesante
y por tal motivo te seguiremos llevando por el mundo del desarrollo
del software.
Por lo te felicitamos porque si tú llegaste hasta aquí significa que
sigues avanzando, y esperamos que nada ni nadie te detengas. Te
invitamos a que continúes, pregunta a tu maestro todas las dudas que tengas y verás que el
futuro será mucho mejor para ti.
Date cuenta ahora, tú sabes analizar, investigar y estructurar datos con un entorno de un
lenguaje de programación.
FELICIDADES!!!! Y TE INVITAMOS A QUE AHORA EMPRENDAS EL VIAJE AL MUNDO DE LA
PROGRAMACION Y PUEDAS IMPLEMENTAR LO HASTA AQUÍ APRENDIDO…
77 Esta guía fue concebida como un medio de aprendizaje en la
educación técnica de nivel medio superior, y de ninguna manera se
pretende que sea un sustituto del docente, por el contrario, se
busca que sirva como un medio de apoyo a la dinámica del proceso
de enseñanza aprendizaje, al orientar la actividad del alumno en el
aprendizaje desarrollador, a través de situaciones problemáticas y tareas que garanticen la
apropiación activa, crítico - reflexiva y creadora de los contenidos, con la adecuada dirección
y control de sus propios aprendizajes.
La guía está integrada por dos competencias:
1. Manipular las estructuras de datos mediante la implementación de programas.
2. Analizar estructuras de datos enlazadas.
El desarrollo de estas competencias permite cubrir básicamente con el Resultado de
Aprendizaje del Sub módulo uno, que es implementar sistemas con la aplicación de los
diferentes tipos de estructuras de datos.
La forma de evaluar el presente Submódulo es en primer término considerando los
instrumentos de evaluación, los cuales determinan el producto y el desempeño, derivados de
cada una de las prácticas plasmadas en la guía.
78 
Estructura de datos, Osvaldo Cairo, Editorial Mc Graw Hill.

Metodología de la programación tomo II, Osvaldo Cairo, Editorial Computec

Metodología de la programación orientada a objetos, Leobardo López Román, Editorial
Alfaomega.

Programación en C, Byron Gottfried, Editorial McGraw Hill.
Links:
http://www.iuma.ulpgc.es/users/jmiranda/docencia/programacion/Tema4_ne.pdf http://2.bp.blogspot.com/_XpBh0uz0ZPw/SPvlg5V548I/AAAAAAAAAKA/w8F9ZQNHAUg/s400/arreglo.png http://imagenes.mailxmail.com/cursos/imagenes/8/5/arrays‐unidimensionales‐los‐vectores_9958_23_1.jpg http://upload.wikimedia.org/wikipedia/commons/thumb/3/3f/Array1.svg/328px‐Array1.svg.png http://ifxperu.com/wp‐content/uploads/2011/03/ArraysUniMulti.gif http://www.mailxmail.com/curso‐aprende‐programar/metodos‐ordenamiento‐busqueda 
Imágenes
http://logica‐digital.blogspot.com/2007/11/suplemento‐3‐cmo‐trabaja‐el.html http://www.emezeta.com/articulos/dibujar‐grafos‐o‐estructuras‐de‐datos#axzz1Nay42PSR http://tesciedd.blogspot.com/2011/01/unidad‐4‐arboles‐y‐grafos.html http://www.zator.com/Cpp/E4_5_8.htm http://designweb‐coepa.blogspot.com/2010/06/133‐estructuras‐de‐navagacion.html http://lml.ls.fi.upm.es/~mcollado/xml/xml‐code.html 79 DATOS SIMPLES: Son aquellos que ocupan sólo una localidad de memoria.
DATOS ESTRUCTURADOS: Son un conjunto de casillas de memoria a las cuales hacemos
referencia mediante un identificador único.
BASE DE DATOS: Está formado por una colección de registros, los cuales están conectados entre sí
por medio de enlaces. Registro.- Es una colección de campos (atributos). Campos.- Contiene
almacenado solamente un valor. Enlace.- Asociación entre dos registros, así que podemos verla
como una relación estrictamente binaria.
ESTRUCTURA DE DATOS: En programación, una estructura de datos es una forma de organizar
un conjunto de datos elementales (un dato elemental es la mínima información que se tiene en el
sistema) con el objetivo de facilitar la manipulación de estos datos como un todo o individualmente.
PILA: (stack) es una colección ordenada de elementos en la cual se pueden insertar nuevos
elementos por un extremo y se pueden retirar otros por el mismo extremo; ese extremos se llama ``la
parte superior'' de la pila.
ARREGLOS: Es un conjunto de datos o una estructura de datos homogéneos que se encuentran
ubicados en forma consecutiva en la memoria RAM (sirve para almacenar datos en forma temporal).
Un arreglo puede definirse como un grupo o una colección finita, homogénea y ordenada de
elementos. Los arreglos pueden ser de los siguientes tipos:
• De una dimensión.
• De dos dimensiones.
• De tres o más dimensiones
ARREGLOS UNIDIMENSIONALES: Un arreglo unidimensional es un tipo de datos estructurado que
está formado de una colección finita y ordenada de datos del mismo tipo. Es la estructura natural para
modelar listas de elementos iguales.
Para implementar arreglos unidimensionales se debe reservar espacio en memoria, y se debe
proporcionar la dirección base del arreglo, la cota superior y la inferior.
COLAS: Es una estructura lineal de datos. Una cola es un grupo ordenado de elementos
homogéneos en el que los nuevos elementos se añaden por un extremo (el final) y se quitan por el
otro extremo (el frente).
ÁRBOL: Es una estructura de datos ampliamente usada que emula la forma de un árbol (un conjunto
de nodos conectados).
80 Un nodo es la unidad sobre la que se construye el árbol y puede tener cero o más nodos hijos
conectados a él.
81 GUIA DE OBSERVACION: TPS-04/M2S1/ Nombre del alumno:
Campos de aplicación
Carrera: Técnico en programador de software.
Lugares donde se pueden aplicar
las estructuras de datos:
Modulo II:. Estructura los datos orientados a objetos.
Submódulo I: Implementar sistemas con la aplicación de los
diferentes tipos de estructura de datos.
1. tiendas,
2. comercios
3. y/o consultorios.
Evidencia por desempeño: carpeta de evidencia con los
programas y prácticas donde está aplicando su proyecto.
Evidencia de actitud asociada: orden, disciplina y
honestidad
Instrucciones para el alumno: implementa las estructuras de datos con su respectivo ABC y el medio
de aplicación así como su manual.
CRITERIOS
CUMPLIO
SI
NO
OBSERVACIONES
1 ¿Entrego el proyecto en tiempo y forma y con el uso
adecuado de ortografía?
2 ¿Aplicó los criterios para la entrega del manual como
portada, índice, desarrollo conclusión y fuentes de
información, etc.?
3 ¿Aplicó el proyecto con la utilización de las estructuras
de datos vistas en clase?
4 ¿Aplicó la utilización adecuada del IDE propuesto en
clase?
5 ¿Aplicó sintaxis extra clase de algún tema dentro del
proyecto?
6 ¿Participó de manera activa en las estrategias de
construcción del aprendizaje recomendadas?
82 Observaciones
generales
Evaluó (Nombre y Firma)
Lugar y fecha de la aplicación
83 CUESTIONARIO PARA VISITAS GUIADAS
1.- ¿Escribe el nombre del sistema de aplicación que viste?
2.- ¿Escribe una lista de los lenguajes de programación que utilizan?
3.- Describe para quienes o que empresas elaboran programas y/o sistemas la que
visitaste.
4.- Describe en qué parte del proceso de la programación te gustaría desarrollarte.
5.- Cuantas computadoras pudiste localizar que son las dedicadas exclusivamente
para la creación de programas y sistemas de aplicación.
6.- Describe que fue lo que más te intereso en la visita guiada.
84 Nombre del Estudiante: Materia: Lista de Cotejo Carpeta de Evidencia a Estudiantes Cumplió Aplica No Aplica Portada
Misión y Visión
Índice
Desarrollo de temas
Incluyo temas extras desarrolladas
Contiene Exámenes Calificados
Ejercicios en clase
Contiene Prácticas y/o Reportes de los laboratorios
Incluye tareas y trabajos investigación
Incluye su Proyecto
Incluye Conclusión
Observaciones:
Firma del estudiante
Docente
85