Estructura de Datos

76
18308 Titulación Ciclo ¡ Ingeniero en Informática  III Estructura de Datos Guía didáctica 5 créditos Departamento de Ciencias de la Computación y Electrónica Sección Inteligencia y Articial UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja MODALIDAD ABIERTA Y A DISTANCIA Autores: Daniel Alejandro Guamán Coronel Guido Eduardo Riofrio Calderón Reestructura: Manuel Sucunuta Asesoría virtual: www.utpl.edu.ec Estimado estudiante recuerde que la presente guía didáctica está disponible en el EVA en formato PDF interactivo, lo que le permitirá acceder en línea a todos los recursos educativos.

Transcript of Estructura de Datos

  • 5/25/2018 Estructura de Datos

    1/76

    18308

    Titulacin Ciclo

    Ingeniero en Informtica III

    Estructura deDatos

    Gua didctica

    5 crditos

    Departamento de Ciencias de la Computacin y ElectrnicaSeccin Inteligencia y Artificial

    UNIVERSIDAD TCNICA PARTICULAR DE LOJA

    La Universidad Catlica de Loja

    MODALIDAD ABIERTA Y A DISTANCIA

    Autores:

    Daniel Alejandro Guamn Coronel

    Guido Eduardo Riofrio Caldern

    Reestructura:

    Manuel Sucunuta

    Asesora virtual:

    www.utpl.edu.ec

    Estimado estudiante recuerde que la presente gua didctica est disponible en el EVA en formato PDF interactivo,lo que le permitir acceder en lnea a todos los recursos educativos.

  • 5/25/2018 Estructura de Datos

    2/76

    ESTRUCTURA DE DATOSGua didctica

    Daniel Alejandro Guamn Coronel

    Guido Eduardo Riofro Caldern

    UNIVERSIDAD TCNICA PARTICULAR DE LOJA

    CC Ecuador 3.0 By NC ND

    Diseo, maquetacin e impresin:EDILOJA Ca. Ltda.

    Telefax: 593 - 7 - 2611418San Cayetano Alto s/n

    www.ediloja.com.ec

    [email protected]

    Derecho de autor 000356

    Segunda edicin

    Sexta reimpresin

    ISBN - 978-9942-00-723-0

    Maquetacin y diseo digitalEDILOJA Ca. Ltda.

    Segunda edicin

    ISBN digital- 978-9942-04-274-3

    Esta versin digital, ha sido licenciada bajo las licencias Creative Commons Ecuador 3.0 de Reconocimiento - no comercial-sin obras derivadas; la cual

    permite copiar, distribuir y comunicar pblicamente la obra, mientras se reconozca la autora original, no se utilice con fnes comerciales ni se realicen

    obras derivadas. http://www.creativecommons.org/licences/by-nc-nd/3.0/ec/

    Abril, 2013

    http://www.ediloja.com.ec/mailto:[email protected]://www.creativecommons.org/licences/by-nc-nd/3.0/echttp://www.creativecommons.org/licences/by-nc-nd/3.0/echttp://www.creativecommons.org/licences/by-nc-nd/3.0/ecmailto:[email protected]://www.ediloja.com.ec/
  • 5/25/2018 Estructura de Datos

    3/76

    2. ndice................................................................................................................................................................. 43. Introduccin................................................................................................................................................... 64. Lineamientos generales del Modelo Educativo basado en competencias y

    crditos acadmicos UTPL- ECTS......................................................................................................... 74.1. Competencias genricas........................................................................................................................... 84.2. Competencias especficas......................................................................................................................... 8

    5. Bibliografa..................................................................................................................................................... 95.1. Bsica.......................................................................................................................................................... 95.2. Complementaria........................................................................................................................................ 9

    Direcciones Electrnicas.................................................................................................................................... 96. Orientaciones generales para el estudio........................................................................................ 117. Proceso de enseanza-aprendizaje para el logro de competencias............................... 13

    PRIMER BIMESTRE

    7.1 Planificacin para el trabajo del alumno.............................................................................................. 137.2. Sistema de evaluacin de la asignatura................................................................................................ 157.3. Orientaciones especficas para el aprendizaje por competencias..................................................... 16

    Unidad 1: ESTRUCTURAS LINEALES ESTTICAS (ARREGLOS).................................................................................. 16

    1.1. Arreglos...................................................................................................................................................... 161.2. Operaciones con arreglos........................................................................................................................... 201.3. Bsqueda................................................................................................................................................... 221.4. Operaciones adicionales con arreglo......................................................................................................... 231.5. Arreglos de dos dimensiones..................................................................................................................... 25Autoevaluacin 1.................................................................................................................................................. 26

    Unidad 2: ESTRUCTURAS DINMICAS: APUNTADORES, LISTAS ENLAZADAS........................................................... 28

    2.1. Apuntadores............................................................................................................................................... 28

    2.2. Estructura de datos dinmicas.................................................................................................................. 302.3. Listas enlazadas........................................................................................................................................ 302.4. Clasificacin de las listas enlazadas......................................................................................................... 312.5. Operaciones con listas enlazadas............................................................................................................. 32Autoevaluacin 2.................................................................................................................................................. 35

  • 5/25/2018 Estructura de Datos

    4/76

    SEGUNDO BIMESTRE

    7.2. Planificacin para el trabajo del alumno.............................................................................................. 367.4. Orientaciones especficas para el aprendizaje por competencias..................................................... 37

    Unidad 3: ESTRUCTURAS DE DATOS NO LINEALES, RBOLES................................................................................. 37

    3.1. rboles....................................................................................................................................................... 373.2. Terminologa.............................................................................................................................................. 383.3. Aplicaciones de los rboles....................................................................................................................... 403.4. rboles binarios......................................................................................................................................... 403.5. Recorridos en rboles binarios.................................................................................................................. 413.6. rboles binarios de bsqueda................................................................................................................... 42Autoevaluacin 3.................................................................................................................................................. 43

    Unidad 4: ARCHIVOS.............................................................................................................................................. 45

    4.1. Formas de acceso...................................................................................................................................... 454.2. Flujos.......................................................................................................................................................... 464.3. Tipo de datos FILE..................................................................................................................................... 464.4. Abrir un archivo......................................................................................................................................... 474.5. Escribir datos............................................................................................................................................. 474.6. Leer datos.................................................................................................................................................. 484.7. Cerrar el archivo......................................................................................................................................... 48Autoevaluacin 4.................................................................................................................................................. 49

    Unidad 5: GRAFOS................................................................................................................................................. 50

    5.1. Componentes de un grafo......................................................................................................................... 515.2. Definiciones............................................................................................................................................... 525.3. Representacin.......................................................................................................................................... 53Autoevaluacin 5.................................................................................................................................................. 55

    8. Solucionario................................................................................................................................................... 579. Anexos.............................................................................................................................................................. 6610. Recursos Multimedia................................................................................................................................. 76

  • 5/25/2018 Estructura de Datos

    5/76

    UNIVERSIDAD TCNICA PARTICULAR DE LOJA La Universidad Catlica de Loja 5

    Gua didctica: Estructura de DatosPRELIMINARES

    Estructura de Datoses una asignatura con 5 crditos, forma parte del grupo de materias troncales decarrera de la malla de Ingeniera en Informtica de la Escuela de Ciencias de la Computacin, modalidad

    Abierta y a Distancia de la UTPL.

    Con los contenidos de la asignatura se pretende cubrir los conocimientos bsicos de las estructuras de

    datos desde la perspectiva computacional, de tal forma que al construir una aplicacin, sus programas

    se diseen acorde al contexto del problema; escogiendo las estructuras necesarias, con algoritmos

    eficientes y eficaces que garanticen el correcto funcionamiento de una solucin informtica.

    Mltiples son los estructuras y diversas las alternativas de solucin, por lo que el estudiante podr elegir

    la mas apropiada que le permita optimizar los recursos computacionales como es: memoria, procesador

    y medios de almacenamiento. Hoy en da los diversos lenguajes de programacin facilitan el uso eimplementacin de las estructuras de datos, al incorporar componentes mucho mas fciles de manejar

    desde el punto de vista de la programacin. Sin embargo la esencia conceptual de cada estructura sigue

    siendo el mismo, por lo que para realizar la parte terica se a escogido como lenguaje de programacin

    C en cualquiera de las versiones.

    La temtica que abarca la asignatura ha sido estructurada en 5 unidades, distribuidas en 2 para el primer

    bimestre y 3 para el segundo bimestre.

    Para el primer bimestre: la primera unidad comprende el anlisis de las estructuras lineales estticas

    implementadas con arreglos. En la segundad unidad se realiza el anlisis de las estructuras de datos

    dinmicas, concretamente con lo que se refiere a apuntadores y listas enlazadas.

    Para el segundo bimestre, se realiza un anlisis de las estructuras de datos no lineales, por lo que en la

    tercera unidad se abarca el tema de los rboles especficamente con las operaciones que se realizan

    en los rboles binarios. La unidad cuatro se enfoca a la forma de almacenar informacin en archivos,

    y finalmente en la unidad cinco se realiza un anlisis general de los grafos, tanto dirigidos como no

    dirigidos.

    Recuerde seor estudiante que el proceso requiere de su esfuerzo y dedicacin de su parte, y cualquier

    inquietud que tenga no dude en hacrmelo conocer ya que estar junto a usted para acompaarle y

    orientarle en el proceso de aprendizaje.

    Muchos xitos y buena suerte.

  • 5/25/2018 Estructura de Datos

    6/76

    Gua didctica: Estructura de Datos

    UNIVERSIDAD TCNICA PARTICULAR DE LOJA La Universidad Catlica de Loja6

    PRELIMINARES

    Sr. Estudiante recuerde que usted ha iniciado su formacin de tercer nivel con un sistema educativo

    basado en el desarrollo de competencias a travs de crditos acadmicos.Este modelo le conviertea usted en protagonista de su propia formacin y al profesor en mediador de las experiencias de

    aprendizaje.

    Surge entonces la necesidad de que tenga claro dos conceptos fundamentales competencia y crdito

    acadmico.

    Qu es una competencia? Entendemos por competenciael conjunto de actitudes, habilidadesy conocimientos que el alumno adquiere e incorpora segn sus caractersticas personales y

    experiencias laborales y, que se ponen de manifiesto en el desempeo de la actividad profesional.

    Las competencias se adquieren a lo largo del proceso formativo de la carrera y se desagregan enobjetivos de aprendizaje propuestos en cada asignatura.

    Elementos de una competencia. Tres son los elementos que podemos distinguir en todacompetencia:

    Actitudes: son predisposiciones y comportamientos ante situaciones concretas.

    Habilidades: son destrezas para ejecutar con xito tareas, utilizar procedimientos y realizartrabajos. Se desarrollan a travs de la prctica y la experiencia.

    Conocimientos: constituyen los contenidos cientficos, conceptuales, tericos, conocidos tambincomo el aprendizaje acadmico.

    Qu es un crdito acadmico UTPL / ECTS en la Modalidad a Distancia?

    Un crdito acadmico es la unidad de medida del trabajo del estudiante, implica32 horas de trabajo delalumno (29 horas de trabajo autnomo y 3 horas de interaccin)1.

    Los crditos acadmicos que el estudiante ir acumulando en el transcurso de la carrera involucran:

    aprendizaje autnomo (estudio personal), tareas de investigacin, interaccin en el Entorno Virtual de

    Aprendizaje (EVA), participacin en tutoras, videoconferencias y otros eventos acadmicos (Jornadas,seminarios, cursos, congresos avalados por la UTPL), prcticas acadmicas, pasantas preprofesionales

    y de vinculacin con la colectividad; actividades de evaluacin; as como la realizacin del trabajo de

    titulacin.

    El modelo adoptado por la UTPL contempla dos tipos de competencias: genricas y especficas.

    Competencias Genricas: Son aquellas capacidades (actitudes, habilidades y conocimientos)comunes a todas las profesiones que se ofrecen en la UTPL. Constituyen una parte fundamental

    del perfil que el estudiante debe desarrollar durante su formacin.

    1 CONESUP (2008):Reglamento del Rgimen Acadmico del Sistema Nacional de Educacin Superior, art. 18.

  • 5/25/2018 Estructura de Datos

    7/76

    UNIVERSIDAD TCNICA PARTICULAR DE LOJA La Universidad Catlica de Loja 7

    Gua didctica: Estructura de DatosPRELIMINARES

    Competencias Especficas: son propias de la titulacin, aportan a la cualificacin especfica parala profesin, dndole consistencia social y profesional al perfil formativo.

    Estructura general del programa formativo

    Las Unidades Acadmicas o Escuelas de la UTPL han estructurado el programa formativo contemplandocinco mbitos o bloques de asignaturas: Formacin Bsica (10%); Genricas de carrera (15%); Troncales

    (35%) Complementarias (10%); Libre configuracin (10%) y adems, el Practicum que comprende las

    Pasantas preprofesionales y de vinculacin con la colectividad y Practicum Acadmico (20%).

    4.1. Competencias genricas

    - Capacidad para organizar y planificar el tiempo.

    - Capacidad de abstraccin, anlisis y sntesis.

    - Habilidades para buscar, procesar y analizar informacin procedente de fuentes diversas.

    - Capacidad de aplicar los conocimientos.

    - Capacidad para identificar, plantear y resolver problemas.- Capacidad creativa e innovadora.

    - Capacidad para tomar decisiones.

    - Capacidad de trabajo en equipo.

    - Habilidades interpersonales.

    - Compromiso con la calidad.

    - Capacidad para formular, disear y gestionar proyectos.

    - Compromiso tico.

    4.2. Competencias especficas

    Estas competencias se encuentran detalladas en la planificacin de cada bimestre.

  • 5/25/2018 Estructura de Datos

    8/76

    Gua didctica: Estructura de Datos

    UNIVERSIDAD TCNICA PARTICULAR DE LOJA La Universidad Catlica de Loja8

    PRELIMINARES

    5.1. Bsica

    Joyanes, L. y Zahonero, I. (2005). Programacin en C. Metodologa, algoritmos y estructura dedatos. Madrid-Espaa: McGrawHill.

    Los autores de esta obra tienen una amplia experiencia en temas relacionados con el diseo de

    algoritmos, desarrollo de programas y en varios lenguaje de programacin. El texto se ha seleccionado

    por cuanto utiliza como lenguaje de desarrollo C, que es un lenguaje que nos permite ir analizando

    detenidamente las estructuras de datos que se analizarn; inicialmente el texto dispone de captulos

    que permiten conocer el lenguaje (c) y no tener problemas con el mismo.

    5.2. Complementaria

    Joyanes, L.; Castillo, A.; Snchez, L.; Zahonero, I. (2005). C. Algoritmos, programacin y estructurasde datos. Madrid-Espaa: McGrawHill. Serie Schawum.

    Es un texto donde los autores enfocan el estudio en base a ejercicios y problemas que plantean

    una solucin, para su anlisis. Tambin se plantean ejercicios propuestos que el estudiante los

    podra resolver.

    KOFFMAN Elliot B., WOLFGANG Paul, (2008) Estructura de datos con C++, Mxico, Editorial Mc

    Graw Hill.

    El presente libro contiene informacin y ejercicios, relacionados con listas, arreglos, objetos los

    cuales se estudian a lo largo del presente perodo.

    JOYANES Luis, MARTINEZ Ignacio, AZUELA Matilde, GARCIA Lucas, (2005) Estructura de Datos en C,Espaa, Editorial Mc Graw Hill.

    Es un texto muy didctico que contiene ejercicios propuestos y resueltos referentes a los temas a

    llevarse a cabo en el presente estudio como arreglos, colas, listas.

    JOYANES, L. (2000): Programacin en C++, Algoritmos, estructura de datos y objetos, Espaa,Editorial Mc Graw Hill.

    Texto que posee informacin de temtica relacionado a las estructuras de datos e incluye ejercicios

    desarrollados en C++.

    Direcciones Electrnicas

    Urrutia, G. (2004): Curso de C [en lnea]. Disponible en: http://www.elrincondelc.com/cursoc/cursoc.html[consulta 09/09/2009]

    http://www.elrincondelc.com/cursoc/cursoc.htmlhttp://www.elrincondelc.com/cursoc/cursoc.htmlhttp://www.elrincondelc.com/cursoc/cursoc.htmlhttp://www.elrincondelc.com/cursoc/cursoc.html
  • 5/25/2018 Estructura de Datos

    9/76

    UNIVERSIDAD TCNICA PARTICULAR DE LOJA La Universidad Catlica de Loja 9

    Gua didctica: Estructura de DatosPRELIMINARES

    En esta direccin encontrar codificacin referente a la declaracin y uso de arreglos, punteros y

    buenas prcticas en C.

    Zator Systems (2008): Curso C++. [en lnea]. Disponible en: http://www.zator.com/Cpp/E_Ce.htm [consulta 09/09/2009]

    Direccin que contiene amplias explicaciones con ejemplos sobre temas referentes a

    programacin en C.

    Pozo, S. (2001): rboles B. [en lnea]. Disponible en: http://articulos.conclase.net/arboles-b/[consulta 09/09/2009]

    Direccin electrnica que contiene informacin relacionada al tema de rboles en C.

    Biblioteca Virtual UTPL, www.utpl.edu.ec/biblioteca

    http://www.zator.com/Cpp/E_Ce.htmhttp://articulos.conclase.net/http://www.utpl.edu.ec/bibliotecahttp://www.utpl.edu.ec/bibliotecahttp://articulos.conclase.net/http://www.zator.com/Cpp/E_Ce.htm
  • 5/25/2018 Estructura de Datos

    10/76

    Gua didctica: Estructura de Datos

    UNIVERSIDAD TCNICA PARTICULAR DE LOJA La Universidad Catlica de Loja10

    PRELIMINARES

    En la Biblioteca virtual encontrar recursos digitales referentes a los contenidos de esta asigna-

    tura, as como de diferentes reas del conocimiento.

    La presente asignatura al ser una materia troncal de la carrera de Ingeniera en Informtica, constituye

    una de las bases fundamentales para la formacin del estudiante dentro de su rea profesional, por lo

    tanto, le ofrecemos algunas orientaciones de como aprovechar al mximo las diversas ayudas que se

    incluyen en recursos didcticos como:

    1) La gua didctica:

    Le permitir orientarse sobre los temas a estudiar, adems contiene ejercicios de autoevaluacin

    que le permitirn medir su grado de comprensin. Por lo tanto lea detenidamente la Gua Didctica,ya que en ella se encuentran las indicaciones que guiarn su autoaprendizaje

    2) El texto bsico:

    En este texto se encuentran los contenidos que se van a tratar en la presente asignatura, su uso

    esta restringido a la gua didctica, esto es, que deber acudir a la gua didctica para saber cuales

    son los temas que deber abordar. Por ello, se recomienda trabajar en forma paralela la gua con

    el texto bsico.

    3) El entorno virtual de aprendizaje (EVA):

    Es un espacio donde podr compartir con sus compaeros y con su profesor mediante mensajes,

    anuncios, foros, tareas, etc. Adems su interaccin en este medio es obligatorio, ya que como

    estudiante de sta rea es un deber usar este tipo de recursos.

    4) Trabajos a distancia:

    Son una estrategia de aprendizaje por tanto contando con todos los medios necesarios resuelva

    los ejercicios y casos que all se plantean. Adems estos trabajos tienen una valoracin de 6 puntos

    con el tiempo suficiente para desarrollarlos.

    5) Tutora:

    Es un tiempo semanal que como profesores dedicamos para atender las inquietudes en relacin a

    los contenidos o desarrollo de trabajos, para ello se publicar un horario en el cual podrn asistir

    personalmente o contactarse va telefnica, el mismo que se detalla en la cartula de la evaluacin

    a distancia.

    En cuanto a la forma de trabajo damos algunos lineamientos que le ayudarn a aprovechar su

    tiempo y lograr mejores resultados:

    1) El tiempo que dedique a la lectura y desarrollo de los ejercicios es fundamental, por lo tanto deberdedicar al menos 6 horas semanales. Puede apoyarse con tcnicas como subrayado, cuadros

    sinpticos y sobre todo mapas conceptuales.

  • 5/25/2018 Estructura de Datos

    11/76

    UNIVERSIDAD TCNICA PARTICULAR DE LOJA La Universidad Catlica de Loja 11

    Gua didctica: Estructura de DatosPRELIMINARES

    2) Recuerde que cuenta con su profesor tutor para la comprensin de los temas, entonces la

    comunicacin con el mismo ser fundamental, para lo cual debe familiarizarse con las formas

    de comunicacin que tiene, ya sea por telfono (consultar horario de tutora), email, chat, y otras

    herramientas tecnolgicas. Recuerde adems que existe una variada informacin en el internet,

    bibliotecas digitales y tambin la documentacin que su profesor le acerca a travs del EVA.

    3) Lea detenidamente la gua didctica, ya que en ella se encuentran las indicaciones que guiarn

    su autoaprendizaje. Revise y analice cada uno de los temas del texto bsico y utilice tcnicas de

    estudio como el subrayado, resmenes, cuadros sinpticos, mentefactos y/o cualquier estrategia

    de aprendizaje que se adecue a su forma de aprender.

    4) Como parte de su autoaprendizaje es recomendable que resuelva las autoevaluaciones ubicadas

    al final de cada unidad de estudio, hgalas sin consultar ningn documento y luego verifique las

    respuestas en el solucionario ubicado al final de la gua didctica. El contenido cientfico para el

    desarrollo de la evaluacin a distancia usted lo encontrar en el texto bsico y la gua didctica.

    Para poder ser ayudado en las diferentes temticas por los profesores / tutores usted puede utilizar

    medios como: correo electrnico, entorno virtual de aprendizaje (EVA), chat, lnea telefnica.

    En la gua didctica se incluyen algunas imgenes que sirven de focalizadores para iden-tificar apropiadamente el texto, a continuacin se indican:

    Icono Descripcin

    Este cono se usar para solicitarle la lectura de una seccin del texto bsico (Lecturas

    recomendadas, texto complementarios, OCW)

    Desarrollo de autoevaluaciones, al final de cada unidad

    Ejercicios y actividades recomendadas en toda la gua

    Profundizar temas

    Para recordar algunos aspectos importantes

    Para indicar que existen anexos en los cuales se podr ampliar el anlisis o ejemplo.

  • 5/25/2018 Estructura de Datos

    12/76

  • 5/25/2018 Estructura de Datos

    13/76

    UNIVERSIDAD TCNICA PARTICULAR DE LOJA La Universidad Catlica de Loja 13

    Gua didctica: Estructura de DatosPRIMER BIMESTRE

    PRIMER BIMESTRE

    7.1 Planificacin para el trabajo del alumno

    COMPETENCIASESPECFICAS

    OBJETIVOS DEAPRENDIZAJE

    CONTENIDOSCRONOGRAMAORIENTATIVO ACTIVIDADES DE

    APRENDIZAJEUnidades/Temas Tiempo estimado

    Analizar las necesidades

    de conocimiento

    necesarias para resolverun problema.

    Comprender, analizar

    y resolver problemas

    aplicando los mtodos

    de la ciencia y la

    ingeniera.

    Aplicar la lgica

    matemtica en el

    contexto de las Ciencias

    de la Computacin, con

    proyeccin, al diseo de

    circuitos, programacin,

    anlisis y desarrollo de

    algoritmos.

    Reconoce el tipo de estructuraesttica lineal a utlizar en la

    solucin de un determinadoproblema.

    Resuelve problemas de ndolealgebraico al utilizando

    arreglos.

    Propone un mtodopara ordenar una lista de

    elementos de diferente tipo

    de datos.

    UNIDAD 1:

    1.1 Arreglos

    1.2 Operaciones con Arreglos

    1.3 Bsqueda

    1.4 Arreglos de dos dimensiones

    1.5 Autoevaluacin 1

    Semana 1, 2 y 3.

    18 horas de

    autoestudio

    12 horas de interaccin

    con el EVA

    Revisin de los

    captulos preliminares

    del texto base(captulos 3, 4, 6 y 7).

    Lectura del

    captulo 9 (Arrays)

    y 10 (Algoritmos

    de ordenacin

    y bsqueda) del

    texto bsico tal

    como se indica en

    la gua didctica

    complementado con

    las actividades de la

    unidad 1 de la gua

    didctica

  • 5/25/2018 Estructura de Datos

    14/76

    Gua didctica: Estructura de Datos

    UNIVERSIDAD TCNICA PARTICULAR DE LOJA La Universidad Catlica de Loja14

    PRIMER BIMESTRE

    Diseo e

    implementacin

    de programas de

    aplicacin.

    Diagnstico y solucin

    de problemas en

    software.

    Desarrollo

    de la primera

    autoevaluacin que

    se indica en la gua

    didactica.

    Realizar la interaccin

    en el EVA: foro

    Identifica la forma correcta decrear apuntadores.

    Analiza la represetacin depunteros en la memora del

    computador.

    Identifica la forma derepresentar las estructuras de

    datos dinmicas.

    Propone soluciones para creary recorrer listas enlazadas

    UNIDAD 2:

    2.1 Apuntadores

    2.2 Estructura de datos dinmicas

    2.3 Listas enlazadas

    2.4 Clasificacin de las listas enlazadas

    2.5 Operaciones con listas enlazadas

    2.6 Autoevaluacin 2

    Semana 4, 5 y 6

    18 horas de

    autoestudio

    12 horas de interaccin

    con el EVA

    Lectura de los

    captulos 12 y 18

    del texto bsico tal

    como se indica en

    la gua didctica

    complementado con

    las actividades de la

    unidad 2 de la gua

    didctica

    Desarrollo de

    la segunda

    autoevaluacin quese indica en la gua

    didactica.

    Realizar la interaccin

    en el EVA: foro

    Analizar ejercicios

    adicionales que se

    indicarn en el EVA.

    UNIDADES 1 Y 2 Semana 7 y 8

    12 horas de

    autoestudio

    8 horas de interaccin

    Repaso general de la

    materia

    Desarrollo ejercicios

    adicionales en el EVA

  • 5/25/2018 Estructura de Datos

    15/76

    UNIVERSIDAD TCNICA PARTICULAR DE LOJA La Universidad Catlica de Loja 15

    Gua didctica: Estructura de DatosPRIMER BIMESTRE

    7.2. Sistema de evaluacin de la asignatura

    1.

    Autoevaluacin

    *

    2. Heteroevaluacin

    3.

    Coevaluacin

    Evaluacin a Distancia

    Evaluacin

    Presencial

    ParteObjetiva

    Partede

    Ensayo

    Interaccin

    conelEVA

    Actitudes

    Comportamiento tico X X X X X X

    Cumplimiento, puntualidad, responsabilidad X X X

    Esfuerzo e inters en los trabajos X X X X X X

    Respeto a las personas y a las normas de

    comunicacin X

    Habilidades

    Creatividad e iniciativa X

    Contribucin en el trabajo colaborativo y deequipo

    Presentacin, orden y ortografa X X

    Emite juicios de valor argumentadamente

    Conocim

    ientos

    Dominio del contenido X X X X X

    Investigacin (cita fuentes de consulta) X X

    Aporta con criterios y soluciones X X

    Anlisis y profundidad en el desarrollo de

    temas

    PORCENTAJE

    Estrategiadeaprendizaje 10% 20% 30%

    Mx

    imo1punto(Completa

    lae

    valuacinadistancia)

    70%

    Actividadespresencialesy

    enelEVA

    Puntaje 2 4 6 14

    TOTAL 20 puntos

    Para aprobar la asignatura se requiere obtener un puntaje mnimo de 28/40 puntos, que equivale al 70%

    Sr. estudiante:

    Tenga presente que la finalidad de la valoracin cualitativa es principalmente formativa; sin embargo,

    en circunstancias especiales podra afectarle positiva o negativamente en su calificacin cuantitativa.

  • 5/25/2018 Estructura de Datos

    16/76

    Gua didctica: Estructura de Datos

    UNIVERSIDAD TCNICA PARTICULAR DE LOJA La Universidad Catlica de Loja16

    PRIMER BIMESTRE

    7.3. Orientaciones especficas para el aprendizaje por competencias

    Unidad 1: ESTRUCTURAS LINEALES ESTTICAS (ARREGLOS)

    Recursos educativos multimedia

    Recursos educativos multimedia

    Los tipos de datos son uno de los elementos fundamentales para construir aplicaciones, por lo tanto en

    este captulo abordaremos el estudio de uno de los tipos de datos compuestos como son los arreglos.

    Para trabajar con estas estructuras de datos es necesario tener algunos conocimiento previos, como es:

    Denicin de tipos de datos bsicos (enteros, decimales, carcter, cadenas de caracteres,booleanos, etc).

    Uso de estructuras secuenciales, condicionales y repetitivas

    Conocimientos bsicos del lenguaje C, entre otros.

    Si no tiene los conocimientos bsicos se sugiere hacer una revisin de los

    captulos: 3 (El lenguaje C: elementos bsicos), 4 (Operadores y expresiones),6 (Estructuras de control: bucles) y 7 (Funciones) del texto bsico, en el que se

    indica de forma detallada estos temas.

    1.1. Arreglos

    Una vez que cuenta con los conocimientos previos es hora de empezar con el estudio de los arreglos

    para utilizarlos en ejercicios comunes de tratamiento de informacin a nivel de listas.

    Ordenacin Ordenacin

    Bsqueda Bsqueda

  • 5/25/2018 Estructura de Datos

    17/76

    UNIVERSIDAD TCNICA PARTICULAR DE LOJA La Universidad Catlica de Loja 17

    Gua didctica: Estructura de DatosPRIMER BIMESTRE

    Revise el apartado 9.1. Arraysdel texto base. Recalque su anlisis en la forma dedeclarar, de definir el tamao, los subndices y el almacenamiento en memoria.

    Puede utilizar la tcnica del subrayado, esto ayudar a lograr una mejor

    comprensin del tema.

    Ahora que ya tiene claro el concepto de los arreglos es conveniente asociar esta estructura con losproblemas que se desea solucionar. En trminos generales un arreglo lo podemos utilizar en todos

    aquellos casos en los que se desea trabajar con un conjunto de elementos, y que para hacer referencia a

    estos datos se lo hace a travs de un slo identificador, pero por supuesto para acceder a cada elemento

    se lo realiza mediante un ndice.

    En resumen los arreglos poseen las siguientes caractersticas:

    Finitos:todo arreglo tiene un lmite, debe determinarse cul es el nmero mximo de elementos

    que podrn formar parte del arreglo.

    Homogneos:todos los elementos de un arreglo son del mismo tipo de dato, es decir: enteros,

    string, char, double, etc., pero nunca una combinacin de mas de un tipo.

    Ordenados:se puede determinar cul es el primer, segundo, tercer, ensimo elemento.

    Adems recordemos que los arreglos pueden ser de varios tipos, destacando los siguientes:

    Unidimensionales (Una dimensin). Bidimensionales (Dos dimensiones). Tres o ms dimensiones.

    La mayora de los lenguajes de programacin al trabajar con arreglos utiliza la

    indexacin basada en cero, que consiste en que el subndice de inicio del arre-

    glo es cero. Por tanto si hablamos de un arreglo con 10 elementos sus subndi-

    ces sern desde 0 al 9, muchas de las veces se tiende a confundir la posicin de

    cierto elemento por sta situacin.

    En la figura 1.1 se representa un arreglo unidimensional con las edades de un grupo de 10 personas.

    edades 45 37 39 29 31 48 45 35 32 51

    0 1 2 3 4 5 6 7 8 9ndices

    Figura 1.1Representacin grfica de un arreglo unidimensional

    En este arreglo es importante resaltar lo siguiente:

    Tiene un nico identicador: edades

    Su tamao es de: 10 elementos

    Cada uno de los elementos se los identica a travs de el ndice. Por ejemplo: en el subndice 3 delarreglo se encuentra el elemento 29, que sera el cuarto elemento de la lista.

  • 5/25/2018 Estructura de Datos

    18/76

    Gua didctica: Estructura de Datos

    UNIVERSIDAD TCNICA PARTICULAR DE LOJA La Universidad Catlica de Loja18

    PRIMER BIMESTRE

    Utilizando el lenguaje de programacin C, la definicin del arreglo de la figura 1.1 sera:

    int edades[10];

    Al hacer esta definicin, en la memoria del computador se reserva el espacio de memoria de cierto

    tamao (esto depender de la longitud de palabra del procesador). En el supuesto caso que el tipo dedato int ocupe dos bytes, el espacio de memoria para la definicin anterior sera de 20 bytes. Se puede

    utilizar el operador sizeof para saber cuantos bytes ocupa el arreglo, se puede utilizar con la siguiente

    instruccin:

    n = sizeof(edades);

    La forma de inicializar un arreglo puede ser de varias formas, depende de la necesidad y las circunstancias.

    A veces puede ser necesario inicializarlo al momento de definirlo o en otras ocasiones ingresarlo desde

    una fuente externa (a la aplicacin), que puede ser desde la consola o de algn medio de almacenamiento

    e incluso desde alguna librera o programa.

    Finalizado el presente apartado se plantean ejercicios que permiten afianzar los conocimientos, por

    lo que deber realizar el respectivo anlisis y desarrollo basndose en los contenidos anteriormente

    tratados.

    Ejercicio 1.1

    1) Indique ejemplos en los cuales considera se aplica arreglos en la vida cotidiana.

    2) Defina un ndice y un elemento de un arreglo unidimensional.

    3) Si tuviramos un arreglo de caracteres con el texto ESTRUCUTRA cul sera el ndice de la letra

    T?.

    Ejercicio 1.2

    Un curso de Computacin tiene 50 alumnos matriculados, si Ud. tuviese que disear un arreglo para

    registrar las notas de los alumnos responda lo siguiente utilizando la programacin en C/C++:

    1) De qu tipo de dato lo definira?

    2) Qu tamao tendra el arreglo?

    3) Cul es el ndice inferior del arreglo?

    4) Cul es el ndice superior del arreglo?

    5) Cul sera la definicin?

    Ejercicio 1.3

    Realice un programa en C/C++ que permita ingresar un arreglo de enteros de 5 elementos, luego quehaya ingresado los elementos al arreglo proceda a realizar las siguientes operaciones:

  • 5/25/2018 Estructura de Datos

    19/76

    UNIVERSIDAD TCNICA PARTICULAR DE LOJA La Universidad Catlica de Loja 19

    Gua didctica: Estructura de DatosPRIMER BIMESTRE

    1. Mostrar o leer cada uno de los elementos ingresados.

    2. Lea el elemento que se encuentra en la posicin 3.

    Ejercicio 1.4

    Cul es el resultado de la ejecucin del siguiente programa en C/C++ que utilice funciones de la librerastring.h para manipular cadenas de texto.

    #include

    #include

    #include

    charcadena0[100];charcadena1[ ]=Universidad;

    charcadena2[ ]=Loja;charcadena3[ ]=Tecnica de;charcadena4;inti;main(){

    printf(El contenido de la cadena1 es:%s\n\n,cadena1);

    printf(El tamao del arreglo cadena1 es:%d\n\n,sizeof(cadena1));printf(El tamao de la cadena de texto es:%d\n\n,strlen(cadena1));

    printf(El resultado de la concatenacion es:%s\n\n,strcat(cadena1, cadena2));

    cadena4 = strpbrk(cadena1, L);

    strncpy(cadena0,cadena1,11);

    strcat(cadena0,cadena4);

    for(i=0; i

  • 5/25/2018 Estructura de Datos

    20/76

    Gua didctica: Estructura de Datos

    UNIVERSIDAD TCNICA PARTICULAR DE LOJA La Universidad Catlica de Loja20

    PRIMER BIMESTRE

    Detalle del cdigo:

    Lneas de la 1 a la 4 Libreras necesarias para trabajar con funciones tipo string y para

    presentar los datos en pantalla y poder leerlos.

    Lneas de la 6 a la 9 En estas lneas se declaran los arreglos de tipo de dato charparaalmacenar las cadenas de texto.

    Lnea 10 En C/C++ una cadena tambin puede ser declarada como unpuntero a char en este caso las funciones de manipulacin de

    string interpretan a un dato de este tipo hasta encontrar en primer

    carcter nulo.

    Lneas 14 a la 17 En la primera lnea se determina cuantos elementos tiene la

    estructura desde el punto de vista de un arreglo, como se podr

    dar cuenta el valor retornado es 12, es decir uno ms del total de

    letras que tiene la cadena, esto se debe a que en el arreglo se toma

    en cuenta el carcter nulo que existe al final de todo el string. En lasegunda lnea se utiliza las funciones de string, por lo tanto estas

    funciones no toman en cuenta el dato nulo como parte de una

    cadena de caracteres.

    Lneas 18 a la 24 La funcin strcat se utiliza para concatenar cadenas, la funcin

    strpbrk divide un string en base a un carcter determinado y

    retorna el string que est despus de dicho caracter.

    1.2. Operaciones con arreglos

    Bien, una vez que hemos estudiado los aspectos fundamentales de los arreglos vamos a revisar algunos

    algoritmos y tcnicas para manipular los datos de estas estructuras, es importante que ponga especial

    atencin a estos algoritmos ya que los mismos son la base para desarrollar y resolver aplicaciones

    especficas en programacin utilizando cualquier lenguaje de programacin.

    Dentro de las operaciones que intervienen en los arreglos constan: lectura/escritura, asignacin,

    actualizacin, ordenacin y bsqueda; las operaciones como declaracin, lectura y asignacin de datos

    ya se estudiaron en los ejercicios anteriores que usted realiz; ahora conviene revisar los temas de

    bsqueda, ordenacin.

    Antes de abordar estos temas es necesario que estudie en el texto bsico los temas relacionados a

    Algoritmos de Ordenacin y Bsqueda los mismos que le ayudarn a comprender de mejor manera lo

    que se pretende en este captulo.

    Del captulo 10 revise el apartado 10.1. Ordenacin,10. 2 Ordenacin porburbuja, 10.3 Ordenacin por seleccin y 10.4 Ordenacin por insercindel texto base. Realice un anlisis de los algoritmos que utilizan cada mtodo.

    La ordenacin, clasificacin de datos (en ingls, sort) es una operacin que consistente en disponer

    un conjunto de datos en un orden con respecto a un criterio del conjunto. Una lista se dice que est

    ordenada por la clave k si la lista est en orden ascendente o descendente con respecto a esta clave.

  • 5/25/2018 Estructura de Datos

    21/76

    UNIVERSIDAD TCNICA PARTICULAR DE LOJA La Universidad Catlica de Loja 21

    Gua didctica: Estructura de DatosPRIMER BIMESTRE

    La lista se dice que est en orden ascendente si: i

  • 5/25/2018 Estructura de Datos

    22/76

    Gua didctica: Estructura de Datos

    UNIVERSIDAD TCNICA PARTICULAR DE LOJA La Universidad Catlica de Loja22

    PRIMER BIMESTRE

    Ejercicio 1.7

    Dado el siguiente arreglo:

    48 45 35 32 51

    1) Realice la secuencia de ordenamiento aplicando el algoritmo por seleccin (apyese en el ejemplo

    de la pgina 357 del texto base).

    2) Realice una ejecucin manual con la codificacin del algoritmo por seleccin que se presenta en

    el texto base en la pgina 358

    En el Anexo 2, se encuentra un programa que permite ordenar los elementos deun arreglo utilizando el algoritmo por seleccin.

    Ejercicio 1.8

    Dado los siguientes datos: 2, 5, 7, 1, 4, 8

    1) Realice grficamente como se insertaran cada uno de los elementos en el arreglo (apyese en el

    ejemplo de la pgina 359)

    2) Realice la ejecucin manual con la codificacin del algoritmo de insercin que se presenta en el

    texto base en la pgina 360.

    En el Anexo 3, se encuentra un programa que permite ordenar los elementos deun arreglo utilizando el algoritmo de insercin.

    1.3. Bsqueda

    Otra de las operaciones que se pueden realizar con los arreglos son las bsquedas, por ejemplo si dispone

    de una nmina y desea encontrar determinado empleado entonces tiene que aplicar un algoritmo de

    bsqueda adecuado. Las bsquedas pueden ser de dos formas: secuencial y binaria.

    Revise el apartado 10.7.3 Anlisis de los algoritmos de bsqueda binaria,del texto base. Analice detenidamente las codificaciones de los algoritmos.

    Comnmente la bsqueda secuencial se utiliza en arreglos desordenados, y la bsqueda binaria en

    arreglos ordenados. Una de las desventajas de la Bsqueda Secuencial es la ineficiencia cuando se tieneuna gran cantidad de datos por el tiempo que se tiene para realizar la bsqueda.

  • 5/25/2018 Estructura de Datos

    23/76

    UNIVERSIDAD TCNICA PARTICULAR DE LOJA La Universidad Catlica de Loja 23

    Gua didctica: Estructura de DatosPRIMER BIMESTRE

    En el Anexo 4encontrar el programa que permite realizar la bsqueda secuencialen arreglos

    Tome en cuenta que cuando elabora algoritmos de bsqueda est condicionado a verificar si un

    elemento se encuentra o no en el arreglo, para ello se podra aplicar la siguiente seccin de cdigo.

    encontrado = 0;

    for{i=0; i

  • 5/25/2018 Estructura de Datos

    24/76

    Gua didctica: Estructura de Datos

    UNIVERSIDAD TCNICA PARTICULAR DE LOJA La Universidad Catlica de Loja24

    PRIMER BIMESTRE

    Ejercicio 1.9

    Realice un algoritmo en C/C++ que permita realizar insercin de nuevos elementos al inicio y nal del

    arreglo. Tal como se indica a continuacin:

    Arreglo Original:

    5 7 9 2 4

    Insertar el nmero 3 al Inicio

    3 5 7 9 2 4

    Insertar el nmero 10 al final

    3 5 7 9 2 4 10

    Insercin en arreglo ordenados

    La insercin de nuevos elementos en arreglos ordenados debe realizarse exactamente en el lugar que

    le corresponde de acuerdo al orden del mismo, a diferencia de los arreglos desordenados en el cual se

    poda hacer al inicio, final o cualquier posicin.

    Modicacin:

    Modificar un elemento significa reemplazar el valor existente por un nuevo dato, para cumplir con

    este propsito primeramente debemos buscar el elemento, para lo cual se puede utilizar la funcin de

    bsqueda estudiada anteriormente (Secuencial) y asignarle el nuevo valor.

    5 7 9 2

    5 7 8 2 4

    Eliminacin:

    El mtodo de bsqueda es sobre el cual gira el proceso de eliminacin ya que se debe buscar el dato a

    eliminar y posteriormente mover el nmero que esta a la derecha del elemento eliminado. Recuerde que

    al eliminar un elemento del arreglo la posicin del cual se elimina queda vaco, por ende debe llenarse

    dicho espacio.

    Finalizado el presente apartado se plantean ejercicios que permiten afianzar los conocimientos, por

    lo que deber realizar el respectivo anlisis y desarrollo basndose en los contenidos anteriormente

    tratados.

    Nuevo valor areemplazar por el 9 en la

    posicin 2 del arreglo.

  • 5/25/2018 Estructura de Datos

    25/76

    UNIVERSIDAD TCNICA PARTICULAR DE LOJA La Universidad Catlica de Loja 25

    Gua didctica: Estructura de DatosPRIMER BIMESTRE

    Ejercicio 1.10

    Indique cul es la diferencia o diferencias y semejanzas entre la bsqueda binaria y la bsqueda

    secuencial en arreglos.

    1.5. Arreglos de dos dimensiones.

    Luego de revisar los arreglos unidimensionales o de una dimensin (una sola fila con varias columnas),

    con las operaciones que se pueden aplicar sobre estos ya podemos estudiar los arreglos de dos

    dimensiones o matrices, la lgica de los programas que se aplican a las matrices no difieren mucho con

    las estudiadas previamente y los que revis en el texto bsico, en este caso se debe tener en cuenta que

    se aumenta un ndice ms y en consecuencia para recorrer la matriz se utilizan dos procesos o sentencias

    de control repetitivas.

    Cmo identificar los arreglos bidimensionales?, les proponemos algunos ejemplos: Qu tienen encomn las tablas, las hojas de Excel y las matrices en matemticas? Ha identificado lo que tienen en

    comn?, pues si, lo comn es que todos tienen filas y columnas, ahora en un arreglo bidimensional al

    igual que un arreglo unidimensional se tienen elementos e ndices los cuales hacen referencia a la fila y

    columna en la cual se encuentra dispuesto el mismo, a continuacin en la figura 1.2 se presenta de forma

    grfica la estructura de una matriz.

    F

    ILAS

    COLUMNAS

    0 1 3

    0 [0][0] [0][1] [0][2] [0][3]

    1 [1][0] [1][1] [1][2] [1][3]

    2 [2][0] [2][1] [2][2] [2][3]3 [3][0] [3][1] [3][2] [3][3]

    Figura 1.2:Estructura Grfica de una matriz

    Junto con el texto bsico y la complementaria que usted crea conveniente, en el captulo relacionado a

    arreglos bidimensionales, vamos a desarrollar algunos ejercicios que nos permitirn conocer algo ms

    acerca de los arreglos bidimensionales y sus capacidades en operaciones.

    Revise el apartado 9.4. Arrays multidimensionales, del texto base. Analicedetenidamente y en lo posible conteste las inquietudes que se mencionaron

    anteriormente.

    Recuerde que para declarar un arreglo de dos dimensiones de tipo entero y de tamao de 4 filas por 5

    columnas, se lo define de la siguiente manera:

    int matriz[4][5];

    Finalizado el presente apartado se plantea un ejercicio que permiten afianzar los conocimientos, por

    lo que deber realizar el respectivo anlisis y desarrollo basndose en los contenidos anteriormentetratados.

    Posicin de un

    elemento dentro

    de la matriz,

    posicin fila1,

    columna2.

  • 5/25/2018 Estructura de Datos

    26/76

    Gua didctica: Estructura de Datos

    UNIVERSIDAD TCNICA PARTICULAR DE LOJA La Universidad Catlica de Loja26

    PRIMER BIMESTRE

    Ejercicio 1.11

    Disee y elabore un algoritmo en C/C++ que permita crear un arreglo de dimensin 3x4, y luego realice

    las operaciones de ingreso y lectura de los valores en la matriz.

    Esperamos que esta unidad haya cumplido las expectativas de adquirir conocimientos bsicos y

    destrezas en el mbito de las estructuras de datos estticas, recuerde que si existe algn tema que aun

    no est claro se puede comunicar con sus profesores / tutores a travs del EVA, correo electrnico, lnea

    telefnica.

    Hemos culminado el estudio de la primera unidad y es hora de realizar una autoevaluacin para

    identificar el avance de su aprendizaje, le invitamos a desarrollarla y le deseamos xitos, recuerde que

    puede comprobar sus respuestas con el solucionario ubicado al final de la gua didctica.

    Autoevaluacin 1

    1. Escriba una V si considera que la armacin es VERDADERA o una F si la considera FALSA.

    1) Un array es una secuencia de objetos combinados de tipo entero y string. ( )

    2) Un arreglo est compuesto por ndices ( )

    3) En el arreglo de texto AUTOEVALUACION, la letra E se encuentra en la posicin 5. ( )

    4) El tamao de un arreglo es mximo de 10 elementos. ( )

    5) La siguiente declaracin de arreglo: int notas [8], permite declarar un arreglo de 8elementos de tipo entero.

    ( )

    6) Los arreglos unidimensionales contienen n filas. ( )

    7) Los arreglos bidimensionales son conocidos como tablas o matrices. ( )

    8) Los arreglos bidimensionales contienen columnas y filas. ( )

    9) Dentro de las operaciones con arreglos constan: lectura, escritura, insercin,bsqueda.

    ( )

    10) Para acceder a un elemento de una matriz que se encuentra en una posicin

    especca se procede Arreglo [1][3].( )

  • 5/25/2018 Estructura de Datos

    27/76

    UNIVERSIDAD TCNICA PARTICULAR DE LOJA La Universidad Catlica de Loja 27

    Gua didctica: Estructura de DatosPRIMER BIMESTRE

    Resuelva lo siguiente

    Parte A:

    2. Declare un arreglo de orden m x n, puede ser tres filas y tres columnas. Se desea registrar la

    siguiente matriz:

    5 6 9

    10 1 7

    3 5 2

    3. Escriba el cdigo para presentar los elementos de la matriz creada en el punto 1.

    4. Escriba el cdigo para obtener los elementos de la diagonal principal de la matriz declarada y

    pselos a un arreglo unidimensional.

    5. Presente grficamente el arreglo unidimensional del punto anterior ordenado de forma ascendente

    y forma descendente.

    Parte B:

    6. Cul es la diferencia entre un arreglo unidimensional y un arreglo bidimensional.

    7. Cules son las dos formas de inicializar una estructura?

    8. Escriba los pasos que sigue el algoritmo de seleccin.

  • 5/25/2018 Estructura de Datos

    28/76

    Gua didctica: Estructura de Datos

    UNIVERSIDAD TCNICA PARTICULAR DE LOJA La Universidad Catlica de Loja28

    PRIMER BIMESTRE

    Unidad 2: ESTRUCTURAS DINMICAS: APUNTADORES, LISTAS ENLAZADAS

    Recursos educativos multimedia

    En la presente unidad estudiaremos otro tipo de estructuras de datos, las mismas que presentan una gran

    ventaja en cuanto se refiere a la flexibilidad de uso, si bien es cierto, el uso de arreglos nos ayuda mucho

    en el desarrollo de aplicaciones, estos presentan la desventaja que se podra reservar ms memoria de la

    que se necesita o que en algn momento nos falte ms de la reservada.

    Hasta ahora hemos estudiado algunas de las operaciones que se realizan sobre estructuras de datos

    estticas, es decir, que ocupan un valor fijo en memoria en el momento de compilacin. A continuacin

    estudiaremos estructuras de datos dinmicas las mismas que se crean dinmicamente en el momento

    de la ejecucin del programa, esto se logra mediante el uso de punteros o apuntadores.

    2.1. Apuntadores.

    Bien, antes de continuar retomemos el estudio del texto bsico para identificar algunos conceptos de

    inters e importancia en Punteros.

    Revisemos ahora el captulo 12 del texto base. Los apartados a revisar son: 12.1Direcciones en memoria, 12.2 Concepto de puntero, 12.3 Punteros NULL yvoid.

    En el texto bsico se encuentran algunas definiciones de apuntadores, pues revisemos otra definicin

    que tambin explica el tema de punteros: Un puntero es un tipo de dato simple que contiene la direccin

    de una variable o estructura, en vez de un valor de dato como lo estudiamos con los arreglos.

    Tenga presente que los datos en punteros se almacenan en la memoria RAM en posiciones especificas, a

    las mismas que se acceden mediante valores hexadecimales.

    Bien, hemos revisado la definicin de lo que es un puntero? se podra encontrar ms de una en la

    bibliografa complementaria o en las referencias web. Ahora que ha revisado la teora de punteros

    revisemos grficamente como podra representar un puntero:

    P

    n 850

    Videoconferencia Diapositivas

  • 5/25/2018 Estructura de Datos

    29/76

    UNIVERSIDAD TCNICA PARTICULAR DE LOJA La Universidad Catlica de Loja 29

    Gua didctica: Estructura de DatosPRIMER BIMESTRE

    Explicando la representacin grfica anterior, se puede decir que el valor de un puntero (p) es una

    direccin(n). La direccin depende del estado de la computadora en la cual se ejecuta el programa.

    Est claro qu es un puntero y cmo se representan en memoria los mismos?, les invito a que continuemos

    el estudio de las estructuras de datos dinmicas las cuales empezamos en el siguiente apartado.

    Finalizado el presente apartado se plantean ejercicios que permiten afianzar los conocimientos, por

    lo que deber realizar el respectivo anlisis y desarrollo basndose en los contenidos anteriormente

    tratados.

    Ejercicio 2.1

    Complete el cuadro explicando que es lo que realiza cada definicin

    int *ptr1; Puntero a un tipo de dato entero (int).long *ptr2;

    char *ptr3;

    float *f;

    Ejercicio 2.2

    Analice la siguiente codificacin y Cul sera la salida?

    #include

    #include

    void main(){

    int n = 10;

    long *dato;

    float *f;

    int* p = &n;

    int *q;

    q = p;

    printf(n = %d\n,n);

    printf(&n = %d:\n,&n);

    printf(p = %d:\n,p);

    printf(&p = %d:\n,&p);

    printf(q = %d:\n,q);

    }

  • 5/25/2018 Estructura de Datos

    30/76

    Gua didctica: Estructura de Datos

    UNIVERSIDAD TCNICA PARTICULAR DE LOJA La Universidad Catlica de Loja30

    PRIMER BIMESTRE

    2.2. Estructura de datos dinmicas.

    Pasaremos a estudiar las estructuras de datos dinmicas, para ello es necesario revisar el texto bsico.

    Revisemos ahora el captulo 13 del texto base. Los apartados a revisar son: 13.1

    Gestin dinmica de memoria, 13.2 funcin de asignacin de memoriamalloc().

    Recuerde que la definicin de un apuntador, se la realiza de la siguiente manera:

    int *p;

    Luego se debe asignar el respectivo espacio de memoria a la variable apuntador, especialmente cuando

    se trabaja con tipos compuestos, como es el caso de las estructuras. La asignacin de memoria sera

    entonces:

    P = (int*)malloc(sizeof(int))

    Una vez revisada la parte terica en el texto bsico y apoyado en lo que usted puede consultar en la

    bibliografa complementaria o web dispngase a realizar los siguientes ejercicios.

    2.3. Listas enlazadas.

    Una lista enlazada se conoce como una coleccin o secuencia de elementos que se encuentran dispuestos

    uno tras otro en las que cada elemento se conecta con el siguiente elemento por un enlace o puntero.

    Revisemos ahora el captulo 18 del texto base. Los apartados a revisar son: 18.1.Fundamentos tericos, 18.2. Clasificacin de las listas enlazadas y 18.3.Operaciones en listas enlazadas.

    Para poder declarar y utilizar las listas, debera conocer cuales son los elementos que componen un

    puntero, recuerda cules son?, revisemos el siguiente grfico:

    Figura 2.1Elementos de un puntero en lista enlazada.

    Es necesario diferenciar entre las dos entidades implicadas en el apuntamiento:

    La variable puntero (Quien hace el apuntamiento) [.]La variable apuntada (A quien se apunta) [ ]

    Si revisamos el texto bsico podremos identificar ejemplos de declaracin de listas enlazadas.

  • 5/25/2018 Estructura de Datos

    31/76

    UNIVERSIDAD TCNICA PARTICULAR DE LOJA La Universidad Catlica de Loja 31

    Gua didctica: Estructura de DatosPRIMER BIMESTRE

    Para profundizar en los temas de listas enlazadas les invito a revisar la temtica en el texto bsico en la cual

    se explica los elementos de las listas enlazadas como son enlaces, direccin de memoria, representacin

    en memoria, etc., es necesario que revise los ejercicios resueltos que se indican en el mismo.

    Ahora Bien, revisemos como vamos evolucionando en el estudio de las estructuras de datos dinmicas,

    para ello desarrolle los siguientes ejercicios.

    Ejercicio 2.3

    Proponga 5 ejemplos de listas enlazadas que ud. pueda identificar en la vida diaria.

    a) Vagones de un tren.

    b) _________________c) _________________d) _________________

    e) _________________

    Ejercicio 2.4

    Represente grficamente utilizando la estructura de las listas los vagones de un tren, por ejemplo

    vagn1, vagn2, vagn3,., vagn n.., ubique el nodo inicial, los nodos siguientes, el nodo final y el

    enlace correspondiente.

    2.4. Clasificacin de las listas enlazadas.

    Dependiendo de los datos que se desea representar y forma en la que se va a interactuar se pueden

    utilizar diferentes tipos. Es necesario revisar el texto base.

    Revise el apartado 18.2. Clasificacin de las listasdel texto base.

    Es importante tener claro las cuatro categoras que se pueden implementar las listas enlazadas. A

    continuacin se indican grficamente estas categoras

    Lista simplemente enlazadas

    Lista doblemente enlazadas

  • 5/25/2018 Estructura de Datos

    32/76

    Gua didctica: Estructura de Datos

    UNIVERSIDAD TCNICA PARTICULAR DE LOJA La Universidad Catlica de Loja32

    PRIMER BIMESTRE

    Lista circular simplemente enlazada

    Lista circular doblemente enlazada

    Finalizado el presente apartado se plantean ejercicios que permiten afianzar los conocimientos, porlo que deber realizar el respectivo anlisis y desarrollo basndose en los contenidos anteriormente

    tratados.

    Ejercicio 2.4

    Mencione una descripcin y caractersticas de cada una de las categoras de las cuatro listas enlazadas.

    Cmo le fue en el desarrollo del ejercicio anterior?, esperemos que muy bien, sin embargo si tiene alguna

    dificultad en realizar el mismo le invitamos para que pueda contactarnos a travs de correo electrnico,

    EVA, u otro medio de comunicacin, recuerde tambin apoyarse de la bibliografa complementaria que

    Ud. crea conveniente.

    Si recordamos un poco las estructuras de datos esttica, habamos hablado de operaciones que se

    realizaban sobre las mismas, ahora con el uso de listas vamos a revisar que operaciones podemos realizar

    sobre las mismas.

    2.5. Operaciones con listas enlazadas.

    Al igual que cuando revisamos la temtica de arreglos cuando trabajamos con listas enlazadas podemos

    realizar muchas operaciones, dentro de las cuales se destaca la creacin, eliminacin, lectura, insercin,actualizacin, entre otras, revisaremos conjuntamente con el texto bsico algunas de ellas.

    Revise el apartado 18.3. Operaciones en listas enlazadasdel texto base.

    Declaracin de un nodo

    En los captulos anteriores tanto de la gua didctica como del texto bsico revisamos como declarar

    un nodo ya que es lo primordial cuando se trabaja con listas y se realiza operaciones sobre las mismas,

    recordemos dicha declaracin con la cual empezamos el estudio de las operaciones en listas enlazadas,

    revisemos la siguiente declaracin.

  • 5/25/2018 Estructura de Datos

    33/76

    UNIVERSIDAD TCNICA PARTICULAR DE LOJA La Universidad Catlica de Loja 33

    Gua didctica: Estructura de DatosPRIMER BIMESTRE

    class Nodo {string valor;

    struct Nodo* enlace;}

    El poseer una declaracin class, permitir agrupar el tipo de dato y el apuntador o enlace al siguiente

    nodo. En el texto bsico encontrar una declaracin similar y algunas adicionales para empezar a operarsobre listas enlazadas.

    Recuerde que en una lista enlazada siempre vamos a encontrar y definir dos nodos

    los cuales son cabeceray cola.

    Pasos para construir Algoritmos que permitan trabajar con listas.

    Para poder crear algoritmos que permitan insertar nodos al inicio, medio, final y realizar la lectura de

    los nodos es primordial conocer como construir una lista que contenga los nodos principales como son

    cabecera y cola, por tanto les sugiero revisar los pasos que se requieren para construir e inicializar una

    lista con elementos, los pasos son:

    1) Declarar el tipo de dato y puntero de cabeza.

    2) Asignar memoria para un elemento del tipo denido en el ptr_nuevo.

    3) Crear iterativamente el primer elemento (cabeza) y los elementos sucesivos de una lista enlazada.

    4) Repetir hasta que no haya mas entradas para el elemento.

    En el Anexo 3 y 4 se propone un ejemplo de la creacion y lectura de las listas enlazadas, en base a ste

    puede realizar las dems operaciones que se pueden llevar a cabo con punteros, le recomiendo en base

    a la revisin del texto bsico desarrollar los ejercicios de listas enlazadas y si tiene algn inconveniente

    no dude en ponerse en contacto con sus profesores / tutores.

    En el Anexo 6 y 7 encontrar cdigo de ejemplos de listas enlazadas, por favor an-

    alice y codifique los mismos.

    Esperamos haya captado las ideas principales en lo relacionado a las listas enlazadas, este ser el punto de

    partida para poder entender y comprender las listas doblemente enlazadas que son parte fundamental

    en las estructuras de datos dinmicas.

    Listas Doblemente Enlazadas

    Como hemos evolucionado en el estudio de las listas enlazadas y una vez conocida su estructura,

    definicin y uso, podemos empezar con el estudio de las listas doblemente enlazadas, sin embargo

    debemos empezar identificando las semejanzas y diferencias entre simplemente y doblemente

    enlazadas, le invito a revisar el texto bsico y la complementaria necesaria para luego desarrollar los

    siguientes ejercicios de parte terica.

  • 5/25/2018 Estructura de Datos

    34/76

    Gua didctica: Estructura de Datos

    UNIVERSIDAD TCNICA PARTICULAR DE LOJA La Universidad Catlica de Loja34

    PRIMER BIMESTRE

    Finalizado el presente apartado se plantean ejercicios que permiten afianzar los conocimientos, por

    lo que deber realizar el respectivo anlisis y desarrollo basndose en los contenidos anteriormente

    tratados.

    Ejercicio 2.5

    Mencione una descripcin y caractersticas de cada una de las categoras de las cuatro

    En el siguiente cuadro ubique cuales son las diferencias y semejanzas entre listas enlazadas y listas

    doblemente enlazadas, tome en cuenta tambin la forma de declaracin, uso, lectura, etc.

    DIFERENCIAS SEMEJANZAS

    LISTAS ENLAZADAS

    DIFERENCIAS SEMEJANZAS

    LISTASDOBLEMENTEENLAZADAS

    Ejercicio 2.6

    En la siguiente representacin grfica identifique los elementos que componen una lista doblemente

    enlazada.

    Luego de haber realizado los ejercicios anteriores podemos empezar a estudiar los temas tericos y

    prcticos que se plantean en el texto bsico y tambin en la complementaria acerca de las listas

    doblemente enlazadas, tal como lo habiamos hecho con las listas enlazadas en el Anexo 5 se propone

    un ejemplo de declaracin y lectura de listas doblemente enlazadas, con las cuales ya podemos empezar

    a revisar las operaciones que se pueden realizar con las mismas.

    En el Anexo 8encontrar ejemplos con cdigo fuente de listas doblemente enlaza-das, le sugerimos revisarlos.

    Muy bien estimados estudiantes, esperamos que en la presente unidad la temtica estudiada y analizada

    haya sido de provecho para fortalecer y aumentar su conocimiento de las estructuras de datos, ahora les

    invitamos a desarrollar la siguiente autoevaluacin, la misma que permitir conocer los vacos que aun

    podran existir y que deber revisarlos con ms profundidad y concentracin; si existiese alguna duda

    o comentario contacte con sus profesores / tutores a travs del EVA, correo electrnico, lnea telefnica.

  • 5/25/2018 Estructura de Datos

    35/76

    UNIVERSIDAD TCNICA PARTICULAR DE LOJA La Universidad Catlica de Loja 35

    Gua didctica: Estructura de DatosPRIMER BIMESTRE

    Autoevaluacin 2

    1. Escriba una V si considera que la armacin es VERDADERA o una F si la considera FALSA.

    1. Una lista enlazada consta de un nmero de elementos y cada elemento tiene dos

    componentes (campos), un puntero al siguiente elemento de la lista y un valor,

    que puede ser de cualquier tipo.

    ( )

    1. En las listas doblemente enlazadas, cada nodo tiene dos enlaces, uno a su nodo

    predecesor y el otro a su nodo sucesor.

    ( )

    2. Los punteros permiten un uso ms eficiente de la memoria. ( )

    3. El recorrido de una lista enlazada significa pasar solo por el nodo inicial y final de

    la lista.

    ( )

    4. Las listas son consideradas estructuras de datos estticas. ( )

    5. Las listas enlazadas estn dispuestos uno a continuacin de otro conectadas a

    travs de un puntero.

    ( )

    6. Las listas doblemente enlazadas contienen tres enlaces, uno que parte desde el

    nodo cabeza al siguiente nodo y otro que parte del nodo cabeza al anterior nodo.

    ( )

    7. Cuando una lista no contiene un nodo el puntero cabeza es nulo. ( )

    8. El primer nodo de una lista enlazada se conoce como puntero cola. ( )

    9. Una lista doblemente enlazada es una lista en la que cada nodo tiene un puntero

    a su sucesor y otro a su predecesor.

    ( )

    RESUELVA LA SIGUIENTE PARTE PRCTICA

    1) Cree una lista enlazada en C/C++ que permita representar la secuencia 1,2,3,.10.

    1 2 3 4 10

    2) Sobre la lista creada en el punto 1, indique la funcin qu permite encontrar el dato del nodo

    5.

  • 5/25/2018 Estructura de Datos

    36/76

  • 5/25/2018 Estructura de Datos

    37/76

    UNIVERSIDAD TCNICA PARTICULAR DE LOJA La Universidad Catlica de Loja 37

    Gua didctica: Estructura de DatosSEGUNDO BIMESTRE

    SEGUNDO BIMESTRE

    7.2. Planificacin para el trabajo del alumno

    COMPETENCIASESPECFICAS

    OBJETIVOS DEAPRENDIZAJE

    CONTENIDOSCRONOGRAMAORIENTATIVO ACTIVIDADES DE

    APRENDIZAJEUnidades/Temas Tiempo estimado

    Analizar las necesidades

    de conocimiento

    necesarias para resolver

    un problema.

    Comprender, analizar

    y resolver problemas

    aplicando los mtodos dela ciencia y la ingeniera.

    Aplicar la lgica

    matemtica en el

    contexto de las Ciencias

    de la Computacin, con

    proyeccin, al diseo de

    circuitos, programacin,

    anlisis y desarrollo de

    algoritmos.

    Diseo e Implementacin

    de programas de

    aplicacin.

    Diagnstico y solucin de

    problemas en software.

    Identifica los tiposde rboles de forma

    conceptual y grfica.

    Reconoce los mtodospara recorrer un rbol

    binario.

    Propone una formade representacin

    estructurada para los

    rboles binarios

    Propone solucionesacordes a la necesidad

    a travs de los rboles

    binarios.

    UNIDAD 3:

    3.1. rboles.

    3.2. Terminologa.

    3.3. Aplicaciones de los

    rboles.

    3.4. rboles binarios.

    3.5. Recorridos en arboles

    binarios.

    3.6. Autoevaluacin 3.

    Semana 1 y 2

    12 horas de autoestudio

    8 horas de interaccin con

    el EVA y tutoras

    Lectura del captulo 20(rboles)del texto bsico tal como se

    indica en la gua didctica

    complementado con las

    actividades de la unidad 3 de la

    gua didctica.

    Desarrollo de la autoevaluacinque se indica en la gua didactica.

    Realizar la interaccin en el

    EVA y resolviendo los ejercicios

    prcticos que se plantean

    Propone solucionesinformticas para el

    almacenamiento de

    informacin.

    Identifica el tipo de accesoque se debe realizar en un

    determinado archivo.

    Reconoce el tipo dearchivo del que se tiene

    que extraer los datos

    UNIDAD 4:

    4.1. Formas de acceso.

    4.2. Flujos.

    4.3. Tipo de dato FILE.4.4. Abrir un archivo.

    4.5. Escribir datos.

    4.6. Lectura de datos.

    4.7. Cerrar el archivo.

    4.8. Autoevaluacin 4

    Semana 3 y 4

    12 horas de autoestudio

    8 horas de interaccin con

    el EVA y tutoras

    Lectura del captulo 15(Entradas

    y salidas por archivos) del texto

    bsico tal como se indica en la

    gua didctica complementado

    con las actividades de la unidad 4

    de la gua didctica.

    Desarrollo de la autoevaluacin

    que se indica en la gua didactica.

    Realizar la interaccin en el

    EVA y resolviendo los ejercicios

    prcticos que se plantean

    Identifica y representadatos en grafos.

    Recnoce el tipo de grafoy sus formas de lectura

    (recorrido) Realiza operaciones para

    extarer la informacin de

    los grafos.

    UNIDAD 5:

    5.1Componentes de un

    grafo.

    5.2 Definiciones.

    5.3 Representacin

    5.4 Autoevaluacin 5

    Semana 5 y 6

    12 horas de autoestudio

    8 horas de interaccin con

    el EVA y tutoras

    Estudio autnomo de la quinta

    unidad.

    Lectura analtica.

    Desarrollo de actividades

    recomendadas en el texto bsicoy en la gua didctica.

    Interaccin en el EVA.

    Finalizar con el desarrollo de la

    evaluacin a distancia.

    COMPETENCIASESPECFICAS

    OBJETIVOS DEAPRENDIZAJE

    CONTENIDOSCRONOGRAMAORIENTATIVO ACTIVIDADES DE

    APRENDIZAJEUnidades/Temas Tiempo estimado

    UNIDADES DE LA 3 A

    LA 5

    Semana 7 y 8

    12 horas de autoestudio

    8 horas de interaccin con

    el EVA y tutoras

    Preparacin para evaluacin

    presencial del segundo bimestre.

  • 5/25/2018 Estructura de Datos

    38/76

    Gua didctica: Estructura de Datos

    UNIVERSIDAD TCNICA PARTICULAR DE LOJA La Universidad Catlica de Loja38

    SEGUNDO BIMESTRE

    7.4. Orientaciones especficas para el aprendizaje por competencias

    Unidad 3: ESTRUCTURAS DE DATOS NO LINEALES, RBOLES

    Recursos educativos multimedia

    Recursos educativos multimedia

    En la unidad anterior estudiamos las estructuras de datos dinmicas, particularmente las listas enlazadas

    y tal como nos pudimos dar cuenta tienen algunas ventajas: en primer lugar se pueden crear nodos en

    tiempo de ejecucin; es decir, conforme se necesite almacenar mas informacin se van creando dichos

    elementos; y por otra parte esta es una estructura lineal puesto que existe un solo camino para recorrer

    sus elementos desde el principio hasta el ltimo elemento.

    En la presente unidad el tema central de estudio son los rboles, los cuales tambin son estructuras

    dinmicas puesto que se crean mediante punteros, pero a diferencia de las listas enlazadas estas

    estructuras son de tipo jerrquico, lo cual quiere decir que la informacin est organizada en varios

    niveles y como podremos ver ms adelante existen muchos caminos para recorrer la estructura desde el

    primer elemento o raz hasta los elementos de los niveles ms avanzados.

    Para el estudio de esta unidad estaremos ayudandonos del texto base concretamente del captulo 20.

    3.1. rboles.

    Entender las estructuras de datos puede ser tan simple si lo miramos desde un punto de vista muy

    objetivo, relacionemos pues los rboles de nuestro medio ambiente con estas estructuras de datos.

    Un rbol implica una estructura en la cual los datos se organizan de modo que los elementos de

    informacin estn relacionados entre s a travs de ramas. El rbol genealgico es el ejemplo tpico ms

    representativo del concepto de rbol general.

    Recorrido de

    rboles

    rboles rboles

    Recorrido de

    rboles

  • 5/25/2018 Estructura de Datos

    39/76

    UNIVERSIDAD TCNICA PARTICULAR DE LOJA La Universidad Catlica de Loja 39

    Gua didctica: Estructura de DatosSEGUNDO BIMESTRE

    Un rbol consta de un conjunto finito de elementos, denominados nodos y un conjunto finito de lneas

    dirigidas, denominadas ramas, que conectan los nodos. El nmero de ramas asociado con un nodo es el

    grado del nodo. Si un rbol no est vaco, entonces el primer nodo se llama raz.

    Revise el apartado 20.1. rboles generalesdel texto base.

    Como se podr dar cuenta el estudio de los rboles es muy simple puesto que sta estructura est muy

    relacionado con objetos de nuestro entorno fsico, a continuacin estudiemos los trminos que definen

    las diferentes caractersticas de un rbol.

    3.2. Terminologa.

    La representacin bsica del rbol requiere que se utilice la terminologa apropiada, por lo que lo invito

    a revisar el tema en el texto bsico.

    Revise el apartado 20.1.1. Terminologa bsicadel texto base.

    En la figura 3.1, se realiza una representacin grfica de un rbol en la que se destacan sus atributos.

    Figura 3.1Terminologa de rboles

    En base a la figura 3.1 revisemos que componentes del rbol corresponden a cada uno de los trminos

    definidos:

    Padres:

    Hijos:

    Descendientes de A:

    Ascendientes de C:

    Hermanos:

    Hojas:

    Profundidad:

    A, B, F

    B, E, F, C, D, G, H, I

    B, C, D

    B, A

    {B, E, F}, {C, D}, {G, F, I}

    C, D, E, G, H, I

    3

    BCD, E, FGHI

  • 5/25/2018 Estructura de Datos

    40/76

    Gua didctica: Estructura de Datos

    UNIVERSIDAD TCNICA PARTICULAR DE LOJA La Universidad Catlica de Loja40

    SEGUNDO BIMESTRE

    Los rboles pueden representarse de varias maneras, aunque la forma ms comn es mediante grafos,

    tal como se muestra en la figura 3.2.

    Figura 3.2Representacin grfica de un rbol

    Continuando con el estudio de los rboles vamos a desarrollar el siguiente ejercicio, es importante quelos conceptos queden claros los cuales son la base para comprender los conceptos posteriores.

    Finalizado el presente apartado se plantea un ejercicio que permiten afianzar los conocimientos, por

    lo que deber realizar el respectivo anlisis y desarrollo basndose en los contenidos anteriormente

    tratados.

    Ejercicio 3.1

    Consulte en el texto bsico base o en cualquier fuente los conceptos relacionados con rboles que se

    indican a continuacin:

    Nodo raz: ....................................................................................................................

    Nodo padre: ....................................................................................................................

    Nodo hijo ....................................................................................................................

    Nodosdescendientes

    ....................................................................................................................

    Nodos ascendientes ....................................................................................................................

    Nodos hermanos ....................................................................................................................

    Nodo hojas ....................................................................................................................

    Nodo interno ....................................................................................................................

    Nodo no terminal ....................................................................................................................

    Nivel ....................................................................................................................

    Arcos ....................................................................................................................

    Ramas ....................................................................................................................

    Camino ....................................................................................................................Altura ....................................................................................................................

  • 5/25/2018 Estructura de Datos

    41/76

    UNIVERSIDAD TCNICA PARTICULAR DE LOJA La Universidad Catlica de Loja 41

    Gua didctica: Estructura de DatosSEGUNDO BIMESTRE

    Subrbol ....................................................................................................................

    rbol equilibrado ....................................................................................................................

    Muy bien, Le result interesante el ejercicio propuesto?, seguro que si ya que en l se pueden ubicar

    algunos conceptos que son bsicos para el presente estudio, ahora que hemos revisado la parte tericade los rboles es importante ver la importancia y aplicabilidad de los mismos, revisemos esta temtica

    a continuacin.

    3.3. Aplicaciones de los rboles.

    Pensemos que las Estructuras de Datos existen para solucionar problemas de nuestro entorno, caso

    contrario no tendr razn su estudio y aplicacin en nuestros programas, revisemos las aplicaciones que

    tienen este tipo de estructuras las mismas que se pueden utilizar para:

    Representar frmulas matemticas.

    Organizar adecuadamente la informacin. Registrar la historia de un campeonato de tenis. Construir un rbol genealgico. Anlisis de circuitos elctricos.

    Como parte de su estudio, le invitamos a desarrollar el siguiente ejercicio que est ligado a las aplicaciones

    de rboles.

    Finalizado el presente apartado se plantea ejercicio que permiten afianzar los conocimientos, por lo que

    deber realizar el respectivo anlisis y desarrollo basndose en los contenidos anteriormente tratados.

    Finalizado el presente apartado se plantean ejercicios que permiten afianzar los conocimientos, por

    lo que deber realizar el respectivo anlisis y desarrollo basndose en los contenidos anteriormente

    tratados.

    Ejercicio 3.2

    Investigue por lo menos 5 aplicaciones adicionales de los rboles.

    ..................................................................................................................................................

    ....................................................................................................................................................................................................................................................................................................

    ..................................................................................................................................................

    ..................................................................................................................................................

    Esperamos est comprendiendo la parte terica de rboles ahora antes de empezar a codificar un rbol

    al igual que las dems estructuras de datos es necesario conocer su representacin, le invitamos a revisar

    la forma de representar un rbol.

    3.4. rboles binarios.

    En este tipo de rbol ningn nodo puede tener ms de dos subrboles, es decir cada nodo puede tener

    cero, uno o dos hijos (subrboles).

  • 5/25/2018 Estructura de Datos

    42/76

    Gua didctica: Estructura de Datos

    UNIVERSIDAD TCNICA PARTICULAR DE LOJA La Universidad Catlica de Loja42

    SEGUNDO BIMESTRE

    Es momento de revisar el apartado 20.2. rboles binariosdel texto base.

    Se conoce el nodo de la izquierda como hijo izquierdo y el nodo de la derecha como hijo derecho.

    5

    3 8

    2 4 7 8

    Figura 3.3Representacin grfica de un rbol binario

    Un rbol binario es una estructura recursiva, cada nodo es la raz de su propio subrbol y tiene hijos, que

    son races de rboles llamados subrboles derecho e izquierdo del nodo, respectivamente.

    Es momento de revisar el apartado 20.2. rboles binariosdel texto base.

    Como puede ver un rbol binario tiene ciertas restricciones (mximo dos subrboles) los cual lo hace

    ms prctico a la hora de programar esta estructura y una de las tareas principales cuando desarrollamos

    aplicaciones con este tipo de rbol es el recorrido, el mismo que lo estudiaremos a continuacin.

    3.5. Recorridos en rboles binarios.

    Una de las tareas bsicas que se realiza en un rbol binario es el recorrido lo cual significa visitar los

    nodos del rbol en forma sistemtica. Un recorrido de un rbol binario, requiere que cada nodo del rbol

    sea procesado (visitado) una vez y slo una en una secuencia determinada.

    Es momento de revisar el apartado 20.6. Recorrido de un rboldel texto base.

    Existen tres formas diferentes de efectuar el recorrido y todas ellas de naturaleza recursiva, stas son:

    Recorrido Preorden (NID)

    - Visitar la raz (N).- Recorrer el subrbol izquierdo (I).

    - Recorrer el subrbol derecho (D).

    Recorrido Enorden(IND)

    - Recorrer el subrbol izquierdo (I).

    - Visitar la raz (N).

    - Recorrer el subrbol derecho (D).

  • 5/25/2018 Estructura de Datos

    43/76

    UNIVERSIDAD TCNICA PARTICULAR DE LOJA La Universidad Catlica de Loja 43

    Gua didctica: Estructura de DatosSEGUNDO BIMESTRE

    Recorrido Postorden (IDN)

    - Recorrer el subrbol izquierdo (I).

    - Recorrer el subrbol derecho (D).

    - Visitar la raz (N).

    A continuacin se presenta los tres recorridos mencionados anteriormente para el rbol mostrado en lafigura: 3.4

    Figura 3.4rbol Binario.

    Preorden: L, D, B, H, G, J, Q, X, T, S, W, YEnorden: B, D, G, H, J, L, Q, S, T, W, X, YPostorden: B, G, J, H, D, S, W, T, Y, X, Q, L

    Una vez que podemos identificar, representar y recorrer un rbol binario, procedamos a revisar algunasoperaciones que se pueden llevar a cabo en rboles.

    3.6. rboles binarios de bsqueda.

    Recuerde, los rboles binarios de bsqueda son muy utilizados, y son la base para nuevas

    estructuras como los rboles binarios equilibrados (AVL), la principal caracterstica es sufacilidad en cuanto a los algoritmos para trabajar con la informacin almacenada.

    Gracias a las caractersticas de los rboles binarios se puede extender su funcionalidad; a continuacin

    revisaremos el rbol binario de bsqueda el mismo que consiste en una estructura sobre la cual se puederealizar eficientemente las operaciones de bsqueda, insercin y eliminacin.

    Formalmente se define un rbol binario de bsqueda de la siguiente manera:

    Para todo nodo T del rbol debe cumplirse que todos los valores de los nodos del subrbol izquierdo de

    T deben ser menores o iguales al valor del nodo T. De forma similar, todos los valores de los nodos del

    subrbol derecho de T deben ser mayores o iguales al valor del nodo T.

    Un rbol binario de bsqueda se construye en base a una lista de nmeros dados (claves), en el cual el

    primer nmero de dicha lista ser la raz del rbol, y los siguientes valores se ubican de acuerdo al criterioantes indicado.

  • 5/25/2018 Estructura de Datos

    44/76

    Gua didctica: Estructura de Datos

    UNIVERSIDAD TCNICA PARTICULAR DE LOJA La Universidad Catlica de Loja44

    SEGUNDO BIMESTRE

    A continuacin vamos a crear un rbol binario de bsqueda para la siguiente lista de nmeros: 65, 75,

    30, 4, 41, 85.

    65

    30 75

    4 41 85

    Figura 3.5rbol Binario.Hemos concluido el estudio de esta unidad, como se podr dar cuenta este tipo de estructuras son muy

    importantes, debido a sus caractersticas particulares, principalmente la organizacin jerrquica. Para

    evaluar el avance que va adquiriendo srvase responder la siguiente autoevaluacin.

    Autoevaluacin 3

    1. Escriba una V si considera que la armacin es VERDADERA o una F si la considera FALSA.

    1 Los punteros hacen un uso ms eficiente de la memoria. ( )

    2 Un rbol consta de un conjunto finito de elementos llamados nodos. ( )

    3 El nivel de un nodo es la longitud del camino que lo conecta al nodo raz. ( )

    4 Un rbol binario puede tener ms de dos subrboles. ( )

    5 El recorrido de un rbol supone visitar cada nodo slo una vez. ( )

    6El recorrido postorden procesa primero el subrbol izquierdo, despus la raz y a

    continuacin el subrbol derecho.( )

    7Al trabajar con punteros: Se puede declarar variables puntero que apunten a

    cualquier tipo de dato, incluso a otros punteros?.( )

    8 El operador & devuelve la direccin de la variable a la cual se aplica. ( )

    9 Los rboles sirven para organizar adecuadamente la informacin. ( )

    10Todo nodo que no es raz, ni terminal u hoja se conoce con el nombre de

    interior.( )

    RESUELVA LA SIGUIENTE PARTE PRCTICA

    2. Dado el siguiente rbol.

    Indique lo siguiente:

    Padres:

    Hijos

    Hojas

    Hermanos

    Profundidad

  • 5/25/2018 Estructura de Datos

    45/76

    UNIVERSIDAD TCNICA PARTICULAR DE LOJA La Universidad Catlica de Loja 45

    Gua didctica: Estructura de DatosSEGUNDO BIMESTRE

    3. Construir un rbol binario de bsqueda con los siguientes datos: 50, 25, 75, 10, 40, 60, 90,35, 45, 70, 42.

    4. Del rbol binario de bsqueda del ejercicio anterior, realice lo siguiente:

    Recorrido Preorden:

    Recorrido Enorden:

    Recorrido Postorden:

  • 5/25/2018 Estructura de Datos

    46/76

    Gua didctica: Estructura de Datos

    UNIVERSIDAD TCNICA PARTICULAR DE LOJA La Universidad Catlica de Loja46

    SEGUNDO BIMESTRE

    Unidad 4: ARCHIVOS

    Hasta ahora hemos estudiado las estructuras de datos tanto estticas (arreglos) como dinmicas (Listas,rboles) las cuales son de mucha utilidad en el desarrollo de aplicaciones; pero por otra parte pensemos

    que las aplicaciones procesan y posteriormente guardan y/o recuperan informacin, para lo cual se

    debe utilizar otras tcnicas de almacenamiento permanente como son los archivos.

    Para la presente unidad es necesario revisar el captulo 15 Entradas y salidas por archivos, del texto base

    Tal como lo he comentado anteriormente, para la buena comprensin de los diferentes temas es

    importante en primera instancia tener claro que los aspectos tcnicos de las diferentes estructuras

    tienen como base el comportamiento real de ciertos objetos de nuestro entorno, en funcin de esto

    revisemos a continuacin las formas de acceso a un archivo.

    4.1. Formas de acceso.

    El acceso a la informacin en un archivo se lo puede realizar de 2 maneras:

    Acceso Secuencial.

    Recordemos como se haca para acceder a un tema musical en los clsicos casettes de audio, se tena que

    adelantar o retroceder la cinta hasta encontrar el tema en cuestin, a este lo llamamos acceso secuencial

    puesto que implica recorrer todos los temas anteriores o posteriores de forma similar, cuando el acceso

    a la informacin (registros) de un archivo es secuencial es necesario recorrer o visitar todos los registrosprecedentes.

    Acceso Directo.

    De la m