Estructura De Datos

Transcription

Estructura de DatosManual Autoformativo InteractivoWalter F. Jesús Videla

Datos de catalogación bibliográficaEstructura de Datos. Manual Autoformativo Interactivo Walter F. Jesús VidelaPrimera ediciónHuancayo, abril de 2017De esta edición Universidad ContinentalAv. San Carlos 1980, Huancayo-PerúTeléfono: (51 64) 481-430 anexo 7361Correo electrónico: tinental.edu.pe/Versión e-bookDisponible en http://repositorio.continental.edu.pe/ISBN electrónico N. 978-612-4196Dirección: Emma Barrios IpenzaEdición: Eliana Gallardo EcheniqueAsistente de edición: Andrid Poma AcevedoAsesoría didáctica: Karine BernalCorrección de textos: Eliana Gallardo EcheniqueDiseño y diagramación: Francisco Rosales GuerraTodos los derechos reservados. Cada autor es responsable del contenido de su propio texto.Este manual autoformativo no puede ser reproducido, total ni parcialmente, ni registrado en o transmitidopor un sistema de recuperación de información, en ninguna forma ni por ningún medio sea mecánico, fotoquímico, electrónico, magnético, electro-óptico, por fotocopia, o cualquier otro medio, sin el permiso previode la Universidad Continental.

ÍndiceINTRODUCCIÓNORGANIZACIÓN DE LA ASIGNATURAUNIDAD I78RESULTADO DE APRENDIZAJE:8UNIDADES DIDÁCTICAS8TIEMPO MÍNIMO DE ESTUDIO8REPRESENTACIÓN DE DATOS Y ESTRUCTURAS DE CONTROLDIAGRAMA DE ORGANIZACIÓN DE LA UNIDAD I99ORGANIZACIÓN DE LOS APRENDIZAJES10Tema N.º 1: Representación de datos11Introducción al tema111. ¿En qué consiste la estructura de datos?112. ¿Por qué se denomina estructura de datos?123. Representación de datos12Tema n.º 2: Estructuras de control22Introducción al tema221. ¿Por qué usar estructuras de control?222. La estructura de control condicionada simple233. La estructura de control condicional doble254. La estructura de control múltiple26Tema n.º 3: Estructuras de control repetitivas29Introducción al tema291. Estructuras de control repetitivas292. La instrucción FOR31Lectura seleccionada n.º 1:33Actividad N.º 133Glosario de la Unidad I34Bibliografía de la Unidad I35Autoevaluación n.º 136

UNIDAD IIARREGLOS Y MATRICESDIAGRAMA DE ORGANIZACIÓN DE LA UNIDAD IIUNIDAD III3939ORGANIZACIÓN DE LOS APRENDIZAJES40Tema n.º 1: Arrays unidimensionales, bidimensionales y multidimensionales. Operaciones con ellos41Introducción411. Definición412. Creación de arreglos423. Operaciones con arreglos424. Conversión de arreglos multidimensionales a unidimensionales475. Arreglo de arreglos50Tema n.º 2: Matrices521. Definición522. Implementación533. Operaciones con matrices554. Matrices especiales59Lectura seleccionada n.º 02: Gestión dinámica de memoria59Actividad N. 0260Glosario de la Unidad II61Bibliografía de la Unidad II62Autoevaluación de la Unidad II62ESTRUCTURAS LINEALES Y NO LINEALES DE DATOS65DIAGRAMA DE ORGANIZACIÓN65ORGANIZACIÓN DE LOS APRENDIZAJES66Tema n.º 1: Pilas, colas y listas671. Pilas672. Colas693. Listas73Tema N.º 2: Grafos781. Definición78

UNIDAD IV2. Representación de grafos793. Operaciones con grafos81Tema n.º 3: Árboles891. Definición892. Implementación de árboles903. Árbol binario90Lectura seleccionada n.º 397Actividad N.º 397Actividad N.º 497Glosario de la Unidad III98Bibliografía de la Unidad III98Autoevaluación N.º3100Organización de datos y archivos103DIAGRAMA DE ORGANIZACIÓN103ORGANIZACIÓN DE LOS APRENDIZAJES104Tema N.º 1: Tablas Hash1051. Definición1052. Función de dispersión1053. Resolución de colisiones107Tema N.º 2: Modelo de datos relacional1121. Base de datos1122. El modelo entidad-relación1123. Fundamentos del modelo entidad-relación1144. Estructura de una base de datos relacional1165. Interactuación Aplicación–Base de datos120Tema N.º 3: Organización de archivos1241. Archivo1242. Organización de archivos125Lectura seleccionada n.º 04137Actividad N.º 4138Actividad N.º 5138

Glosario de la Unidad IV139Bibliografía de la Unidad IV140Autoevaluación N.º 4141ANEXO: Solucionario de las autoevaluaciones144

Estructura de DatosMANUAL AUTOFORMATIVO INTERACTIVOINTRODUCCIÓNEl presente manual autoformativo corresponde ala asignatura de Estructura de Datos de la modalidad virtual de la Universidad Continental yconstituye el material didáctico más importante parasu estudio.Al finalizar la asignatura de estructura de datos usted estará en capacidad de elaborar y programar algoritmos más eficientes en términos de tiempo deprocesamiento y uso de memoria, garantizándole eldesarrollo de software de calidad. Los temas a tratarson los siguientes: UnidadI: Representación de datos y estructuras de control Unidad II: Arreglos y matrices Unidad III: Estructuras lineales y no lineales Unidad IV: Organización de datos y archivosDurante su desarrollo se describirán conceptualmente y con ejemplos las principales estructuras de datoscomo arreglos, matrices, colas, listas, grafos y árboles de búsqueda.Se sugiere seguir esta secuencia de pasos:a) Realizar el estudio de los contenidosb) Estudiar las lecturas seleccionadasc) Desarrollar la autoevaluaciónd) Desarrollar las actividades programadasEl autor7

ORGANIZACIÓN DE LA ASIGNATURARESULTADO DE APRENDIZAJE:Al finalizar la asignatura, el estudiante será capaz de seleccionar las estructuras de datos adecuadas para losalgoritmos, de acuerdo a la problemática planteada.UNIDADES DIDÁCTICASUNIDAD IUNIDAD IIUNIDAD IIIUNIDAD IVRepresentación de datos yestructuras de controlArreglos y matricesEstructuras lineales y nolineales de datosOrganización de datos yarchivosResultado de aprendizajeResultado de aprendizajeResultado de aprendizajeResultado de aprendizajeAl finalizar la unidad, elestudiante será capaz deseleccionar las estructurasde control adecuadas, segúnla problemática propuesta.Al finalizar la unidad, elestudiante será capaz de seleccionar las estructuras dearreglos y matrices, según laproblemática propuesta.Al finalizar la unidad, elestudiante será capaz deseleccionar las estructuraslineales y no lineales, enla solución de diversosproblemas.Al finalizar la unidad, elestudiante será capaz dereconocer la organización dedatos y archivos a través delestudio de casos.TIEMPO MÍNIMO DE ESTUDIO8UNIDAD IUNIDAD IIUNIDAD IIIUNIDAD IV1.ª y 2.ª semanas3.ª y 4.ª semanas5.ª y 6.ª semanas7.ª y 8.ª semanas12 horas20 horas20 horas12 horas

Estructura de DatosMANUAL AUTOFORMATIVO INTERACTIVOUNIDAD IREPRESENTACIÓN DE DATOS Y ESTRUCTURAS DECONTROLDIAGRAMA DE ORGANIZACIÓN DE LA UNIDAD IVIDADES9

ORGANIZACIÓN DE LOS APRENDIZAJESResultado de aprendizaje de la Unidad I:Al finalizar la unidad, el estudiante será capaz de seleccionar las estructuras de control adecuadas, según la problemática propuesta.CONOCIMIENTOSTema n.º 1: Representación de datos1. ¿En qué consiste la estructura dedatos?2. ¿Por qué se denomina estructura dedatos?HABILIDADESACTITUDES1. I dentifica los conceptos de representación de datos.1. Demuestra perseverancia y esfuerzodurante el desarrollo de los ejercicios.2. Describe las estructuras de controlsimple, doble y múltiple.3. Representación de datosTema n.º 2: Estructuras de control1. ¿Por qué se deben usar estructurasde control?2. Estructura de control condicionadasimple3. Estructura de control condicionadadoble4. Estructura de control condicionadamúltipleTema n.º 3: Estructura de controlrepetitivas1. Estructura de control repetitiva2. La instrucción FORLectura seleccionada n.º 1:El concepto de datos estructuradosAutoevaluación de la Unidad I103. I dentifica y compara las estructurasde control repetitivas.2. Toma conciencia de la importanciade la asignatura en su formaciónprofesional.3. V alora las relaciones entre sus compañeros.

Estructura de DatosMANUAL AUTOFORMATIVO INTERACTIVOTema N.º 1El objetivo de esta primera unidad es brindar los conceptos fundamentales sobre losque se elaboran los demás contenidos de la asignatura. Por ello, en este primer temase describe en qué consisten las estructuras de datos y qué relación guardan con losIntroducciónal temaalgoritmos. A continuación, se detallan las formas de representar los datos en elcomputador, diferenciando entre datos simples y datos estructurados. Asimismo, esEl objetivode esta primeraes brindar losdeconceptosfundamentalessobre los que selos demásprimordial,para launidadimplementacióntales estructurasla comprensióndelelaborantema asedescribeenquéconsistenlasestructuraslas denominadas estructuras de control, las cuales se abordan como último acápite.de datosy qué relaciónguardanconlos algoritmos.A continuación,se detallanlas formasde representardatos en elSe debeaclararque,aunque tenganun nombrerelacionadoal títulodel curso,losmáscomputador,datosy datos estructurados. Asimismo, es primordial, para la impleestán diferenciandovinculadas alentrediseñodesimplesalgoritmos.mentación de tales estructuras la comprensión del tema de las denominadas estructuras de control, las cuales1. ¿Enquéconsistede datos?se abordancomoúltimoacápite. laSeestructuradebe aclarar que,aunque tengan un nombre relacionado al título del curso,más están vinculadas al diseño de algoritmos.Posiblemente a usted le resulten familiares algunas de estas frases: “se cayó elsistema”, “el programa está lento”, “se colgó el software, reinicia la máquina”, entreotras. Descartando la existencia de problemas técnicos con el computador y la red1. ¿Enqué consiste la estructura de datos?de datos, el siguiente factor que puede afectar el rendimiento de un software es lacalidad de los algoritmos que emplea para procesar la información. Precisamente, laPosiblementea ustedresultenfamiliaresde deestasfrases: para“se cayóel sistema”, “el programaestáestructurade ledatosse refiereal ”, actamente algoritmos, que utilicen de una manera eficiente los recursos de lacon el computadora.computador y laTalred eficienciade datos, elessiguientefactorque puede afectarel rendimientode un softwareesmedida,principalmente,en términosde tiempodela calidadde los algoritmosquedeempleapara procesar la información. Precisamente, la estructura de datos seprocesamientoy usomemoria.refiere al conjunto de técnicas para desarrollar software, o exactamente algoritmos, que utilicen de una maneraWeiss(2000)deconsideraque Talmuchosalgoritmosuna enrepresentacióneficientelos recursosla computadora.eficienciaes medida,requierenprincipalmente,términos de tiempo epresentaciónjunto con lasprocesamiento y uso de memoria.operaciones permitidas se llama estructura de datos.Weiss (2000) considera que muchos algoritmos requieren una representación apropiada de los datos para lograrser eficientes.Esta representación junto con las operaciones permitidas se llama estructura de datos.RECUERDA:UNIDAD ITema N.º 1:Representación de datosIntroducción al temaTema N.º 1: Representación de datosRECUERDA:Un algoritmo es “un conjunto de instrucciones claramente especificadas que elordenador debe seguir para resolver un problema” (Weiss, 2000, p. 103).Un algoritmo es “un conjunto de instrucciones claramente especificadas que el ordenador debe seguir pararesolverproblema”(Weiss,2000,p. 103).Launfigura1 ilustraestadescripción.La figura 1 ilustra esta descripción.Figura 1 Representación de un algoritmoAlgoritmoPaso 1Paso 2Paso nFuente: Elaboración propiaFigura 1 Representación de un algoritmoFuente: Elaboración propia2. ¿Por qué se denomina estructura de datos?Usted recordará que por definición todo computador transforma datos eninformación útil para el usuario; por ejemplo, si se ingresa la operación (5 2) seespera que el computador lo interprete, lo procese y devuelva el resultado 7. Enlenguaje C podría trabajarse un programa como el siguiente:11

Tema N.º 1UNIDAD I2. ¿Por qué se denomina estructura de datos?Usted recordará que por definición todo computador transforma datos en información útil para el usuario; porejemplo, si se ingresa la operación (5 2) se espera que el computador lo interprete, lo procese y devuelva elresultado 7. En lenguaje C podría trabajarse un programa como el siguiente:void main(){int a, b;cin a;cin b;cout “La suma es: ” a b endl;}Programa 1.1Una tarea muy sencilla ¿verdad?¿Pero qué sucede cuando se debe procesar mayor cantidad de datos, por ejemplo, calcular la cantidad de notasaprobatorias de una lista de 50 estudiantes?1ª opción: Se elabora un programa que solicite cada nota (una por una), mientras un contador va incrementándose en la unidad cada vez que identifica una nota mayor que 10.¿Cuánto tiempo tomaría la digitación? ¿Y si se ingresa mal un dato?2ª opción: Se puede solicitar cada nota y guardarla en una variable independiente; al final se compran por separado para determinar si son aprobatorias.¿Cuántas líneas de código tendría este programa?Entonces, frente a estos inconvenientes se propone disponer los datos en estructuras (de ahí “estructura dedatos”) como, por ejemplo, arreglos —o arrays por su denominación en inglés—, a fin de agilizar las tareas delectura y escritura de los mismos, mientras se minimiza el esfuerzo de procesamiento, la cantidad de líneas decódigo, el tiempo de programación, etc.3. Representación de datos3.1. Tipos de datosPara que un programa funcione debe estar en la capacidad de recibir, procesar y almacenar diferentes tiposde datos. Aunque cada lenguaje de programación maneja sus propios tipos, en términos generales su puedenconsiderar los siguientes: Numérico: 1, -5, 3.67, etc. Texto o cadena: “ABC”, “Palabra”, “wjesus@continental.edu.pe”, etc. Fecha / hora: 07/09/15, 12/12/16 15:23, etc. Lógico: Verdadero, falso.Sahni (2005) denomina a este universo de posibles valores como “objetos de datos” (o Data Objects), y lo definecomo un conjunto de instancias o valores.12

Estructura de DatosMANUAL AUTOFORMATIVO INTERACTIVODato de tipo enteroDato de tipo cadenaPalabraDato de tipo cadena5Fuente: Elaboración propiaUNIDAD IFigura2. Representaciónde la memoriade usoun decomputadorPara que unprogramapueda guardar un determinadovalor hacelas llamadas “variables”, las cuales físicamente se traducen en espacios reservados de memoria: imagine a la memoria de la computadora como unagran tabla en la que en cada celda se puede almacenar un dato; al crearse una variable y asignárseleun nombre,5el softwarereservaunaPalabrade estas celdas.Observela siguientefigura:Figura2. Representacióndela memoriade uncomputadorDato de tipo enteroFuente: Elaboración propiaprograma al1.2valormuestraun ejemplo debastarácómo crearuna variable,asignarleParaEl recuperarcorrespondientecon referenciar(llamar)al Para recuperar al valor correspondiente bastará con referenciar (llamar) al nombre de la variable creada.Tema N.º 1Para recuperar al valorcorrespondienteFuente:Elaboración bastarápropia con referenciar (llamar) al2. Representaciónde la memoria de un computadornombre de laFiguravariablecreada.voidmain()un ejemplo de cómo crear una variable, asignarle un valor y luego recuperarlo.El programamuestraEl1.2programa1.2 muestra un ejemplo de cómo crear una variable, asignarle un{valor y luego recuperarlo.int a;// Declarar la variable “a” de tipo enterovoid main()a 5;// La variable recibe el valor de 5void main()cout “Elvaloringresado es: ” a endl;// Recuperar el{{// valor de aint a;// a;Declarar//laDeclararvariablela“a”de tipo“a”enterointvariablede tipo entero}a 5;// La//variablerecibeel valorde 5 de 5a 5;La variablerecibeel valorPrograma 1.2cout “Elvalorvaloringresadoes: ” aendl;elcout “Elingresadoes: a” endl;// Recuperar// Recuperarel// valor de a// valor de a3.2. Datos simples y datos estructurados}}Programa 1.2Según manifiesta Cruz (2011, p. 8), “la principal característica de los datosque ocupansolouna casilla de la memoria, por lo tanto, hacen3.2.simplesDatos essimplesy datosestructuradosreferencia a un único valor a la vez”, mientras que “los datos estructurados se3.2. Datossimplesy datosporestructuradoscaracterizanel hechoconprincipalun solo característicanombre (o tambiénllamadoSegúnmanifiestaCruz(2011, dep. que8), “lade los datosidentificadorvariables)hacereferenciaun grupo dede memoria”;simpleses que deocupansolo seunacasillade la amemoria,porcasillaslo tanto,hacena ndatoestructuradopuedeSegún manifiesta(2011,p.8), de“laprincipalde losdatosesque ocupan soloreferenciaun únicovalora la característicavez”, omientrasque“losdatosestructuradosseuna figuras2y3,notarálla de la rizan por el hecho de que con un solo nombre (o también llamadoestadiferencia.identificadorde devariables)referenciaa un grupodeidentificadorcasillas de dememoria”;se caracterizanpor el hechoque con seun hacesolo nombre(o tambiénllamadovariables) se hacesu grupovez cadauno dedeloselementoscomponentesdato estructuradopuedereferencia aa unde casillasmemoria”;a suo vezcada uno dedelosunelementoso componentesde un datoFigura1.3.Representaciónde un datoestructuradoen la memoriadeunserun datosimpleu otro ructuradopuedeser undato simpleotro estructurado.Comparandolasfigurasfiguras 22 yy 3,estadiferencia.computadordiferencia.Programa 1.2Nombre del arregloFigura 1.3. Representación de un dato estructurado en la memoria de uncomputadorMi arregloNombre del arreglo0012Mi arreglo1Índices233FiguraRepresentaciónun dato3estructuradoen larepresentación,memoria de un computadorCabe1.3.precisarque ladefiguraes sólo unaya que las casillasÍndices no necesariamente sonde un dato estructurado, si bien operan en conjunto,adyacentes.Es3 precisamenteesta característicaque permiterealizaruna primeraCabe precisarque la figuraes sólo una representación,ya que laslacasillasde un datoestructurado,si bien sar que la3 es sólouna representación,ya quelalasran en conjunto,no necesariamentesonfiguraadyacentes.Es precisamenteesta característicaquecasillaspermite realizarde undato estructurado,si bienoperan en conjunto, no necesariamente sonuna primeraclasificaciónde las estructurasde datos: Basadasen arreglosesta(o tes.Es precisamentecaracterísticala quepermite realizaruna primera nlazadas”.clasificaciónde las(oestructurasde datos: Basadasen arreglosArrays), tambiéndenominadas ”contiguas”. Basadas en arreglos (o Arrays), también denominadas ”contiguas”.Basadas en punteros (o Linked), también denominadas ”enlazadas”.13

Tema N.º 1UNIDAD I Basadas en punteros (o Linked), también denominadas ”enlazadas”.La segunda forma de clasificarlas es según la “figura” que describen al graficarlas, pudiendo ser lineales y nolineales; a su vez estas se subclasifican de la siguiente manera: Estructuras linealesoArreglosoPilasoColasoListas Estructuras no linealesoÁrbolesoGrafosTodos estos tipos de estructuras serán descritos al detalle a lo largo del presente manual.3.3. Estructuras de datos basadas en arreglos (estructura contigua)Cada instancia de una estructura de datos tipo lista lineal es una colección ordenada de elementos. Cada una deestas instancias es de la forma (e0 , e1 , e2 , , en 1 ) donde: n es un número natural finito, que representa el ancho o tamaño de la lista. ei representa cada elemento de la lista e i es su índice.Aunque resulte obvio mencionar que precede a , a y así sucesivamente, es necesario recalcar que esta relaciónde precedencia solo se da en listas lineales.Algunos ejemplos de listas lineales son los siguientes: La lista de estudiantes de esta clase (ordenadas por el nombre) La lista de puntajes de un examen ordenados por mayor a menor La lista de arribos de vuelos aéreos, ordenados del más reciente al más antiguo3.3.1. Operaciones con una lista lineala) Crear la listab) Destruir la listac) Determinar si la lista está vacíad) Determinar el tamaño de la listae) Encontrar un elemento a partir de su índicef) Encontrar el índice de un elemento dadog) Borrar un elemento dado a partir de su índice14

Estructura de DatosMANUAL AUTOFORMATIVO INTERACTIVOh) Insertar un nuevo elemento en un índice determinado3.3.2. Abstracción de una lista lineal:Es posible representar una lista lineal al margen de algún lenguaje de programación (de ahí el término “abstracto”) de la siguiente forma:Tema N.º 1Lista Lineal{InstanciasColección finita ordenada de cero o más elementos.OperacionesEmpty():Retorna verdadero si la lista está vacía; de lo contrario, falso.Size():Retorna el número de elemento de la lista (tamaño)Get(índice):Retorna el elemento de la posición (índice) especificada.IndexOf(x): Retorna el índice del elemento x (primera ocurrencia). Si el elemento no existe,devuelve -1.Erase(índice):Borra el elemento cuyo índice es especificado.Insert(índice, x) :Inserta el elemento x en la posición indicada como índice.Output():Muestra (imprime) la lista de elementos de izquierda a derecha.}UNIDAD Ii) Listar los elementos in orden (ascendente o descendentemente)Tomada de Data Structures, Algorithms, and Applications in C , por Sahni (2005), p. 141.Por ejemplo, al declarar la siguiente lista lineal L {Apple, HP, Toshiba, Vaio}, los resultados de las operacionesindicadas serían (considerar L original para cada caso):L.Empty():L.Size() :L.Get(2):L.IndexOf(“Toshiba”) :L.Erase(1):L.Insert(3, “Assus”):L.Output():Falso4“HP”2 (el primer elemento tiene índice 0){Apple, Toshiba, Vaio}{Apple, HP, Toshiba, Assus, Vaio}{Apple, HP, Toshiba, Vaio}Ahora intente usted, con la siguiente lista: M {a, b, c, , “e”)M.Insert(2, “f”)M.Output():::::::::::3.3.3. Representación de arreglosCada elemento de un arreglo puede ser asignado o localizado empleando una fórmula matemática; la más sencilla, y usada de forma natural, es la siguiente:15

UNIDAD IUbicación (i) i formula (a)Esta fórmula significa que el i-ésimo elemento de la lista se encuentra en la posición i. Observe el siguiente caso:Se decide guardar la lista [5, 2, 4, 8, 1] en un arreglo de tamaño 10. Haciendo uso de la fórmula los elementos,se ubicarían comosigue:Figura4. Ubicación de elementos en un arreglo con la fórmula (a)Tema N.º 152481Figura 4. Ubicación de elementos en un arreglo con la fórmula (a)[0][1][2][3][4][5][6][7][8][9]Figura4. Ubicación524 de elementos81 en un arreglo con la fórmula (a)Figura4. Ubicaciónde elementos losen unarreglo con(a)Esto debidoa que,si se reemplazanvaloresde lai, fórmulase tiene:[0][1][2][3][4][5][6][7][8][9]52481 Ubicación(0) 0Esto debidosi debidose reemplazanlostiene:[0] a que,[1][2] a que,[3][4] de i, se[5][6][8][9]Estosi valoresse reemplazanlos valoresde[7]i, se tiene: Ubicación(1) 1 Ubicación(2)2 Ubicación(0)0 a que, si Esto debidose0reemplazan los valores de i, se tiene:Ubicación(0) Ubicación(3) 3 Ubicación(1) 1 Ubicación(4) 4 Ubicación(1)1 Ubicación(0) 0 2 Ubicación(2) Ubicación(1) 1 3 Ubicación(3)¿Le pareciódemasiada obvia la primera fórmula? Cuando se trata de Ubicación(2)2 Ubicación(2) 2 4 Ubicación(4)estructurar datos, no es la única que existe. Ubicación(3) 3 Ubicación(3) 3 Ubicación(4)4¿Le pareció demasiadaobvia la primera fórmula? Cuando se trata deSi se emplea la fórmula:estructurardatos,noeslaúnica que existe. Ubicación(4) 4¿Le pareció demasiada obvia la primera fórmula? Cuando se trata deUbicación(i)Tamañodel existe.arreglo – i – 1formula(b)datos,nofórmula:es laúnica queSi se emplea¿Le parecióestructurardemasiadaobviala laprimerafórmula?Cuandose trata de estructurar datos, no es la única que existe.asignarlalosvalores se ubicarían de derecha a izquierda, así:Si laseAlempleafórmula:Ubicación(i) Tamaño del arreglo – i – 1formula(b)Si se empleafórmula:Figura 5. Ubicación de elementos en un arreglo con la fórmula (b) Tamañodel arregloi – 1 a izquierda,formula(b)Al Ubicación(i)asignar los valoresse ubicaríande –derechaasí:18425Al asignar losvalores sea izquierda,así:Al asignarlosvaloresdesederechaubicaríande deelementosenunaarregloconla fórmula (b)[0][1][2][3][4][5][6][7][8][9]Figura 5. Ubicación de elementos en un arreglocon la fórmula(b)18425Debido a que:[0][1][2][3][4][5][6][7][8][9]18425 Ubicación(0) 10 – 0 – 1 9FiguraUbicación dela fórmula [8](b)[0][1][4]elementos[5]en un arreglo[6] con [7][9]Debido a[2]que: 5. [3] Ubicación(1) 10 – 1 – 1 8 Ubicación(2) 10 – 2 – 1 7Debidoque: aUbicación(0) 10 – 0 – 1 9Debido a que: Ubicación(3) 10 – 3 – 1 6 Ubicación(1) 10 – 1 – 1 8 Ubicación(4) 10 – 4 – 1 5 Ubicación(0)0 –– 12 Ubicación(2)–91 7 Ubicación(0)10 – 0 – 1 109 –10 Ubicación(1) 10 –101 –– 13 Ubicación(3)–81 6La fórmula que se emplee para asignar/localizar un elemento específico en el Ubicación(2) 10–2–1 7 Ubicación(4) 10–4– 5 Ubicación(1) 10 –también1 – 1 8 afectará la1 formaarreglocómo se insertan y eliminan nuevos Ubicación(3) 10 – 3 – 1 6elementos. Ubicación(4)4 – 1 para5 asignar/localizar un elemento específico en elLa fórmula Ubicación(2)10 – 2 –que1 107se–empleearreglo también afectará la forma cómo se insertan y eliminan nuevosRevisemos el caso para la fórmula (a): al insertarse un nuevo valor (7) en laLa fórmulapara asignar/localizar un elemento específico en el Ubicación(3) 10 que– 3 –se1 emplee6elementos.posición 2 del arreglo, los elementos [4, 8, 1] deberían correr una posiciónarreglo también afectará la forma cómo se insertan y eliminan nuevoshacia la derecha. Ubicación(4) 10 – 4 –el1 5 para la fórmula (a): al insertarse un nuevo valor (7) en laelementos.Revisemoscasoposición 2 del arreglo, los elementos [4, 8, 1] deberían correr una posiciónLa fórmulaRevisemosque seempleepara oel arreglotambiénafectarála formacasopara la fórmulaal insertarsevalor(7) enlahacialaelderecha.cómo se insertany eliminannuevos elementos.posición2 del arreglo,los elementos [4, 8, 1] deberían correr una posiciónhacia la derecha.Revisemos el caso para la fórmula (a): al insertarse un nuevo valor (7) en la posición 2 del arreglo, los elementos[4, 8, 1] deberían correr una posición hacia la derecha.16

Estructura de DatosMANUAL AUTOFORMATIVO INTERACTIVOFigura 6. Proceso de inserción de un nuevo elemento en un arreglo queemplea la fórmula (a)Paso AD I5[0]Paso b)Paso c)5[0]Tema N.º 15[0]Por elcontrario,al eliminarelemento,los queubiquena la derechaFigura6. Procesode inserciónde ununnuevoelementotodosen un arregloqueseempleala fórmula(a)de él deberán correr una posición hacia la izquierda.programa1.3 muestraimplementaciónla operaciónde insercióndeposiciónPor el contrario,Elal eliminarun elemento,todoslalosque se ubiquen a dela derechade él deberáncorrer unaunnuevoelementoapartirdelafórmula(a).hacia la izquierda.#include iostream El programa1.3 muestrala implementación de la operación de inserción de un nuevo elemento a partir de lausingnamespacestd;fórmula (a).constint N 10; // Tamaño del arreglo#include iostream intmiArreglo[N];// Creación del arreglo con N elementosusing namespace std;const int N 10; // Tamaño del arreglo// Procedimiento para inicializar la matrizint miArreglo[N];void init() // Creación del arreglo con N elementos{miArreglo[0] 5; //Insertar en la posición 0, el elemento// Procedimientopara inicializarla matrizmiArreglo[1] 2; //Insertaren la posición 1, el elementovoid init() miArreglo[2] 4; //Insertar en la posición 2, el elemento{miArreglo[3] 8; //Insertar en la posición 3, el elementomiArreglo[0] 5; //Insertaren la enposición0, el 4,elemento5miArreglo[4] 1; //Insertarla posiciónel elemento};miArreglo[1] 2; //Insertar en la posición 1, el elemento 2miArreglo[2] 4; //Insertar en la posición 2, el elemento 4//Función que determinasi laenmatrizestá vacíamiArreglo[3]8; //Insertarla posición3, el elemento 8boolempty()miArreglo[4] 1; //Insertar en la posición 4, el elemento 1{};bool vacío true;int determinai 0;// Función quesi la matriz está vacíawhile (vacío true && i N)bool empty(){{if (miArreglo[i] 0)bool vacío true;vacío false;int i 0; i ;while }(vacío true && i N){return vacío;if (miArreglo[i] 0)};vacío false;i ;// Procedimiento para insertar un elemento en el arreglo}5248117

Tema N.º 1UNIDAD I};return vacío;// Procedimiento para insertar un elemento en el arreglovoid Insert(int indice, int elemento){// Si la lista está vacía insertar el elemento en la posición [0]if (empty() true)miArreglo[0] elemento;else// Correr una posición a la derecha a partir de la posición del nuevo elemento{int i 0;while ((N-1)-i indice){miArreglo[(N-1)-i] miArreglo[(N-1)-(i 1)];i ;}}// Insertar el nuevo valormiArreglo[indice] elemento;};// Procedimiento para imprimir los elementos del arreglovoid Output(){cout endl;cout ”Elementos del arreglo” endl;for (int i 0; i N; i )cout ”Elemento[“ i ”]: “ miArreglo[i] endl;};// PROGRAMA PRINCIPALvoid nsertar valores inicialesMostrar en pantallaInsertar, en la posición 2, el elemento 7Mostrar en pantallaInsertar, en la posición 5, el elemento9Mostrar en pantallaPrograma 1.33.4. Estructuras de datos basadas en punteros (estructura enlazada)En este tipo de estructuras, los elementos pueden almacenarse en cualquier ubicación de la memoria. Por consiguiente, para crear una lista cada elemento tiene un enlace o puntero (o di

Tema n.º 2: Modelo de datos relacional 112 1. Base de datos 112 2. el modelo entidad-relación 112 3. Fundamentos del modelo entidad-relación 114 4. estructura de una base de datos relacional 116 5. interactuación Aplicación-Base de datos 120 Tema n.º 3: Organización de archivos 124 1. Archivo 124 2. Organización de archivos 125