INSTITUTO TECNOLOGICO EL LLANO LICENCIATURA EN INFORMATICA ESTRUCTURA DE DATOS I



Documentos relacionados
Estructura de Datos. Unidad I Tipos de Datos

Introducción a la Programación 11 O. Humberto Cervantes Maceda

Curso Introducción JAVA Pág.: 1

TEMA II: REPRESENTACIÓN DE LA INFORMACIÓN

Tema 3 Elementos básicos de programación

by Tim Tran:

Unidad de trabajo 2: INFORMÁTICA BÁSICA (primera parte)

TEMA 2: Representación de la Información en las computadoras

Sistemas de numeración, operaciones y códigos.

Tema 1. Representación de la información MME

Preliminares. Tipos de variables y Expresiones


Introducción a la programación orientada a objetos

Gestor de aplicaciones Java. Esta herramienta es el intérprete de los archivos de clase generados por el javac (compilador).

Capítulo 1: Sistemas de representación numérica Introducción. Dpto. de ATC, Universidad de Sevilla - Página 1 de 8

Identificadores, palabras reservadas, tipos de datos, operadores aritméticos y el sistema estándar de salida en Java

Unidad I. 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal)

1. Informática e información. 2. Sistemas de numeración. 3. Sistema binario, operaciones aritméticas en binario, 4. Sistemas octal y hexadecimal. 5.

PART II: Moviendo al jugador

Tema 2. La Información y su representación

Instituto Tecnológico de Celaya

7. Manejo de Archivos en C.

CAPÍTULO IV BREVE DESCRIPCIÓN DE LA INFRAESTRUCTURA DE CÓMPUTO VISUAL BASIC 6.0 PARA WINDOWS

Elementos léxicos del lenguaje de programación Java

CONCEPTOS BASICOS DEL LENGUAJE JAVA

En la actualidad ASCII es un código de 8 bits, también conocido como ASCII extendido, que aumenta su capacidad con 128 caracteres adicionales

Tema 2. El lenguaje de programación Java (Parte 1)

Capítulo 2 REPRESENTACIÓN DE LOS DATOS. Presentación resumen del libro: "EMPEZAR DE CERO A PROGRAMAR EN lenguaje C"

Apuntes de ACCESS. Apuntes de Access. Campos de Búsqueda:

ARREGLOS DEFINICION GENERAL DE ARREGLO

PROGRAMACIÓ DIDÁCTICA: Secuanciación, Temporalización y Unidades Didácticas

Estructura de Datos [Tipos de datos concretos y tipos de datos abstractos]

Introducción al tipo de dato ARRAY

TRADUCTORES, COMPILADORES E INTÉRPRETES. EJERCICIOS TEMA 5, 6, 7 y 8.

1. SISTEMAS DIGITALES

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA

1 ELEMENTOS BASICOS DEL LENGUAJE

SISTEMAS NUMERICOS CAMILO ANDREY NEIRA IBAÑEZ UNINSANGIL INTRODUCTORIO A LA INGENIERIA LOGICA Y PROGRAMACION

ESTRUCTURA DE DATOS: ARREGLOS

Matemática de redes Representación binaria de datos Bits y bytes

INFORMÁTICA. Práctica 5. Programación en C. Grado en Ingeniería en Electrónica y Automática Industrial. Curso v1.0 (05.03.

SISTEMAS DE NUMERACIÓN. Sistema decimal

Sistema binario. Representación

EL MODELO DE ESTRATIFICACIÓN POR CAPAS DE TCP/IP DE INTERNET

DESARROLLO DE HABILIDADES DEL PENSAMIENTO LÓGICO

!!!!!!!! !!!!! Práctica!4.! Programación!básica!en!C.! ! Grado!en!Ingeniería!!en!Electrónica!y!Automática!Industrial! ! Curso!2015H2016!

Aprendiendo a programar Microcontroladores PIC en Lenguaje C con CCS

Proyecto Unico Interpretador de SetCalc

Lenguajes de Programación

Java Inicial (20 horas)

UNIVERSIDAD TECNOLÓGICA NACIONAL FACULTAD REGIONAL CÓRDOBA EL LENGUAJE DE LOS DATOS EN LA PC Y SU FORMA DE ALMACENAMIENTO

Capítulo 12: Indexación y asociación

BASE DE DATOS UNIVERSIDAD DE LOS ANDES FACULTAD DE MEDICINA T.S.U. EN ESTADISTICA DE SALUD CATEDRA DE COMPUTACIÓN II. Comenzar presentación

Introducción al lenguaje de programación java

Tema 1: Computadores y Programas

DEPARTAMENTO: Informática. MATERIA: Programación. NIVEL: 1º Desarrollo de Aplicaciones Multiplataforma

Contenido. Sistema de archivos. Operaciones sobre archivos. Métodos de acceso a archivos. Directorio. Sistema de archivos por capas.

UD 1. Representación de la información

UNIDADES DE ALMACENAMIENTO DE DATOS

Tema 2 : Códigos Binarios

Pilas y Colas. Capítulo 3

PROGRAMACIÓN ORIENTADA A OBJETOS

Visual Basic 1. Empleo de módulos y Procedimientos. Procedimientos definidos por el usuario

INTRODUCCIÓN. Estructura de Datos Tipos Abstractos de Datos (TAD S) Profs. Lorna Figueroa M. Mauricio Solar F. UTFSM 1 / 2008

TEMA 1: SISTEMAS INFORMÁTICOS. Parte 2: representación de la información

Lección 1. Representación de números

Área Académica: Ingeniería en Computación. Profesor: M. en C. Evangelina Lezama León

21/02/2012. Agenda. Unidad Central de Procesamiento (CPU)

Objetivo de aprendizaje del tema

Introduccion al Lenguaje C. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia

1. Manejo de memoria estática 2. Manejo de memoria dinámica

Materia: Informática. Nota de Clases Sistemas de Numeración

Transformación de binario a decimal. Transformación de decimal a binario. ELECTRÓNICA DIGITAL

Introducción a los Tipos Abstractos de Datos

Tipos Abstractos de Datos

Modulo 1 El lenguaje Java

ISTP CIDET COMPUTACION E INFORMATICA ARREGLOS EN JAVA

SISTEMAS NUMÉRICOS (SISTEMAS DE NUMERACIÓN)

Mesa de Ayuda Interna

Ciclo de vida y Metodologías para el desarrollo de SW Definición de la metodología

Capítulo 6. ÁRBOLES.

INFORMÁTICA. Matemáticas aplicadas a la Informática

ANEXO 2: REPRESENTACION DE LA INFORMACION EN LOS COMPUTADORES

En cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.

Primeros conmutadores: diodos de cristal y de tubos de vacío (1906). Transistor (TRT): más pequeño y fiable, de material semiconductor (1950).

Programación Orientada a Objetos con Java

Sensor de Temperatura utilizando el Starter Kit Javelin Stamp. Realizado por: Bertha Palomeque A. Rodrigo Barzola J.

Contenido. Capítulo 1. Introducción a lenguaje C 1

Alumna: Adriana Elizabeth Mendoza Martínez. Grupo: 303. P.S.P. Miriam De La Rosa Díaz. Carrera: PTB. en Informática 3er Semestre.

Estructura de Computadores

8. Sentencia return y métodos

Informática I para Bachillerato

ACTIONSCRIPT (AS) Proyectos II. Audiovisuales. Dpto. Escultura. UPV. [sintaxis elemental]

Curso PHP Módulo 1 R-Luis

Figura 4.1 Clasificación de los lenguajes de bases de datos

Informática Básica: Representación de la información

TEMA 1 Representación de la información

CAPÍTULO 4. EL EXPLORADOR DE WINDOWS XP

UNIDADES FUNCIONALES DEL ORDENADOR TEMA 3

El sistema decimal, es aquél en el que se combinan 10 cifras (o dígitos) del 0 al 9 para indicar una cantidad específica.

Transcripción:

Presentación de la Materia: Programa de Estudios Horar io Lunes 08:30 10:30 Material: Apuntes ftp://ftp.paginasprodigy.com Usuario; tmx9714074 Contraseña: 11466 Softwa re: Java C++ Visual Basic 6 Visual Basic 2005 Bibliografía: Manuales del Lenguaje Evaluaciones 1 Parcial 28 de Septiembre 2 Parcial 4 de Octubre 3 Parcial 14 de Diciembre Portafolio de Evidencias Apuntes Tareas Investigacio nes Practicas o ejercicios resueltos Mauricio Ramos Davila 1

Unidad 1 Tipos de Datos Simples: Estructura de datos Son todos aquellos que abarcan una sola casilla de memoria como los boleanos, enteros, flotantes, etc. Estructurales: Arreglos de cadenas, pilas o estructuras, abarcan más de una casilla de memoria. TABLA COMUN DE TIPOS DE DATOS TIPO RANGO BYTES E N T E R O S Entero 32,768 a 32,767 2 Entero sin signo 0 a 65,535 2 Corto 32,768 a 32,767 2 Corto sin signo 0 a 65,535 2 Largo entero 2,147,483,648 a 2,147,483,295 4 Largo sin signo 0 a 4,294,967,295 4 C A R A C T E R Caracter 128 a 127 1 Caracter sin signo 0 a 255 1 DE PUNTO FLOTANTE Flotante 3.4 38 a 3.4 38 4 Doble 1.7 308 a 1.7 308 8 Mauricio Ramos Davila 2

Largo doble 3.4 4932 a 3.4 4932 10 Primitiv os: No tienen descomposición, están predefinidos en el lenguaje. Tipos compuestos: Aparte de los anteriores, C++ soporta tipos compuestos (también denominados tipos-clase). Son compuestos o agregados de tipos básicos, por esta razón se les denomina también tipos agregados o abstractos ADTs ( Abstract data types ). El material de que están compuestos son los tipos básicos, bien en estado puro o en sus diversas adaptaciones. El proceso es recursivo, de forma que un tipo complejo puede contener miembros que son a su vez tipos complejos y así sucesivamente. Desde el punto de vista semántico la gramática C++ establece como tipos compuestos ( Compound types ) los siguientes: Arreglos. Matrices de objetos de cualquier tipo. Funciones, que aceptan parámetros de ciertos tipos y devuelven void u objetos (o referencias a objetos) de cierto tipo. Punteros a-void; punteros a-objetos, o punteros a-función (incluyendo miembros estáticos de clases) de un tipo determinado. Punteros a miembros no-estáticos de clases (que señalan miembros de un tipo determinado dentro de objetos de una clase determinada). Referencias a objetos o funciones de un tipo determinado. Clases. Uniones. También existen tipos de datos definidos por el usuario que varían sus Mauricio Ramos Davila 3

sintaxis según el lenguaje de programación. 1.1.1 Tipos de Datos simples Tipos de datos simples Es uno de los conceptos fundamentales de cualquier lenguaje de programación. Estos definen los métodos de almacenamiento disponibles para representar información, junto con la manera en que dicha información ha de ser interpretada. Para crear una variable (de un tipo simple) en memoria debe declararse indicando su tipo de variable y su identificador que la identificará de forma única. La sintaxis de declaración de variables es la siguiente: Tipo Simple Identificador1, Identificador2; Esta sentencia indica al compilador que reserve memoria para dos variables del tipo simple Tipo Simple con nombres Identificador1 e Identificador2. Los tipos de datos en Java pueden dividirse en dos categorías: simples y compuestos. Los simples son tipos nucleares que no se derivan de otros tipos, como los enteros, de coma flotante, booleanos y de carácter. Los tipos compuestos se basan en los tipos simples, e incluyen las cadenas, las matrices y tanto las clases como las interfaces, en general. Cada tipo de datos simple soporta un conjunto de literales que le pueden ser asignados, para darles valor. En este apartado se explican los tipos de datos simples (o primitivos) que presenta Java, así como los literales que soporta (sintaxis de los valores que se les puede asignar). a.) Tipos de datos enteros Se usan para representar números enteros con signo. Hay cuatro tipos: byte, short, int y long. Tipo Tamañ Mauricio Ramos Davila 4

o byt e 1Byte (8 bits) sho rt 2 Bytes (16 bits) Mauricio Ramos Davila 5

in t 4 Bytes (32 bits) lon g 8 Bytes (64 bits) Literales enteros Son básicos en la programación y presentan tres formatos: Decimal: Los literales decimales aparecen como números ordinarios sin ninguna notación especial. Hexadecimal: Los hexadecimales (base 16) aparecen con un 0x ó 0X inicial, notación similar a la utilizada en C y C++. Octal: Los octales aparecen con un 0 inicial delante de los dígitos. Por ejemplo, un literal entero para el número decimal 12 se representa en Java como 12 en decimal, como 0xC en hexadecimal, y como 014 en octal. Los literales enteros se almacenan por defecto en el tipo int, (4 bytes con signo), o si se trabaja con números muy grandes, con el tipo long, (8 bytes con signo), añadiendo una L ó l al final del número. La declaración de variables enteras es muy sencilla. Un ejemplo de ello sería: long numerolargo = 0xC; // Por defecto vale 12 b.) Tipos de datos en coma Mauricio Ramos Davila 6

flotante Se usan para representar números con partes fraccionarias. Hay dos tipos de coma flotante: float y double. El primero reserva almacenamiento para un número de precisión simple de 4 bytes y el segundo lo hace para un numero de precisión doble de 8 bytes. Tipo Tamañ o flo at 4 Byte (32 bits) Mauricio Ramos Davila 7

doub le 8 Bytes (64 bits) Tabla 6: Tipos de datos numéricos en coma flotante Literales en coma flotante Representan números decimales con partes fraccionarias. Pueden representarse con notación estándar (563,84) o científica (5.6384e2). De forma predeterminada son del tipo double (8 bytes). Existe la opción de usar un tipo más corto (el tipo float de 4 bytes), especificándolo con una F ó f al final del número. La declaración de variables de coma flotante es muy similar a la de las variables enteras. Por ejemplo: double mipi = 314.16e-2 ; // Aproximadamente float temperatura = (float)36.6; // Paciente sin fiebre Se realiza un moldeado a temperatura, porque todos los literales con decimales por defecto se consideran double. c.) Tipo de datos boolean Se usa para almacenar variables que presenten dos estados, que serán representados por los valores true y false. Representan valores bi-estado, provenientes del denominado álgebra de Boole. Literales Booleanos Mauricio Ramos Davila 8

Java utiliza dos palabras clave para los estados: true (para verdadero) y false (para falso). Este tipo de literales es nuevo respecto a C/C++, lenguajes en los que el valor de falso se representaba por un 0 numérico, y verdadero cualquier número que no fuese el 0. Para declarar un dato del tipo booleano se utiliza la palabra reservada boolean: boolean recibopagado = false; // Aun no nos han pagado?! Mauricio Ramos Davila 9

d.) Tipo de datos carácter Se usa para almacenar caracteres Unicode simples. Debido a que el conjunto de caracteres Unicode se compone de valores de 16 bits, el tipo de datos char se almacena en un entero sin signo de 16 bits. Literales carácter Representan un único carácter y aparecen dentro de un par de comillas simples. De forma similar que en C/C++. Los caracteres especiales (de control y no imprimibles) se representan con una barra invertida ( \ ) seguida del código carácter. Descripción Representac ión Valor Unicode Caracter Unicode \udddd Numero octal \ddd Barra invertida \u005c Continua ción Retroceso \b \u0008 Retorno de carro Mauricio Ramos Davila 10

\r INSTITUTO TECNOLOGICO EL LLANO \u000d Alimentación de formularios \f Mauricio Ramos Davila 11

\u000c Tabulación horizontal \t \u0009 Línea nueva \n \u000a Comillas simples \ \u0027 Comillas dobles \ \u0022 Números arábigos ASCII 0 9 \u0030 a \u0039 Alfabeto ASCII en mayúsculas A.-Z \u0041 a \u005a Alfabeto ASCII en minúsculas a.-z \u0061 a \u007a Tabla 7: Caracteres especiales Java Las variables de tipo char se declaran de la siguiente forma: char letramayuscula = A ; // Observe la necesidad de las char letrav = \u0056 ; // Letra V Mauricio Ramos Davila 12

e.) Conversión de tipos de datos Es posible transformar el tipo de una variable u objeto en otro diferente al original con el que fue declarado. Este proceso se denomina conversión, moldeado o tipado. La conversión se lleva a cabo colocando el tipo destino entre paréntesis, a la izquierda del valor que queremos convertir de la forma siguiente: char c = (char)system.in.read(); La función read devuelve un valor int, que se convierte en un char debido a la conversión (char), y el valor resultante se almacena en la variable de tipo carácter c. El tamaño de los tipos que queremos convertir es muy importante. No todos los tipos se convertirán de forma segura. Por ejemplo, al convertir un long en un int, el compilador corta los 32 bits superiores del long (de 64 bits), de forma que encajen en los 32 bits del int, con lo que si contienen información útil, esta se perderá. Mauricio Ramos Davila 13

Por ello se establece la norma de que en las conversiones el tipo destino siempre debe ser igual o mayor que el tipo fuente : Mauricio Ramos Davila 14

Tipo Origen Tipo Destino byte double, float, long, int, char, short short double, float, long, int char double, float, long, int int double, float, long long double, flotat flota double 1.1.1.1 DEFINICIÓN DE BIT, BYTE, CARÁCTER Y PALABRA Bit: es una síntesis de dos términos en inglés: Binary digit, que en español significan dígito binario, o lo que es lo mismo, número (dígito) con dos posibles valores (binario). El término surge de usar las dos primeras letras de Binary con la última de digit.: bit. Es la unidad de información más sencilla posible en el sistema binario. Byte: Unidad de información que consta de 8 bits equivalente a un único caracter, como una letra, número o signo de puntuación. Caracter: Es un elemento tomado de un conjunto de símbolos. Un ejemplo de un conjunto de símbolos es {0,1,2,3,4,5,6,7,8,9,A,B,C.Y,z,,-,+,*} en el cual se incluyen dígitos, los caracteres del alfabeto y algunos caracteres especiales. Un compilador de lenguaje reconoce Mauricio Ramos Davila 15

un conjunto particular de caracteres. 1.1.2 Tipos de datos abstractos En la historia de la ciencia de la computación los programadores han tenido que lidiar durante mucho tiempo con el problema de la complejidad, y a fin de entender lo que son las técnicas orientadas a objetos encontramos diferentes mecanismos para controlarla y a la cabeza de ellos encontramos a la abstracción esto es, la capacidad para encapsular y aislar la información de diseño y ejecución, esto es las técnicas orientadas a objetos son el producto de una progresión que va desde los procedimientos, a los módulos, los tipos de datos abstractos y los objetos. Un tipo de datos abstracto es aquel definido por el programador que puede ser manipulado de una manera similar a los definidos por el sistema. Al igual que estos últimos, un tipo de dato abstracto corresponde a un conjunto (tal vez tamaño infinito) 00 HECTORINN 00 De valores lícitos y de un numero de operaciones primitivas que pueden ejecutarse sobre ellos. El usuario puede crear variables con valores que fluctúen dentro del conjunto aceptado y actuar sobre dichos valores por medio de las operaciones definidas. Por ejemplo si tomamos como ejemplo una pila y la definimos como n tipo de dato abstracto y las operaciones como las únicas validas para ejecutar con ejemplares de la pila. Para construir un tipo de dato abstracto, debemos ser capaces de: Exportar una definición de tipo Proporcionar un conjunto de operaciones que pueden usarse para manipular los ejemplares del tipo. Proteger los datos asociados con el tipo de tal manera que se pueda operar con ellos solo mediante la operación provista. Crear múltiples ejemplares del tipo. Mauricio Ramos Davila 16

La abstracción es la acción de separar mentalmente o bien la Representación de las características esenciales de algo sin incluir antecedentes o detalles irrelevantes, se le llama así por que la abstracción debe de encapsular todas las propiedades esenciales de algo, en términos de programación esto quiere decir que los objetos deben abstraer tanto los datos como los procesos. L a idea básica es que un objeto esta definido por una lista de atributos abstractos (con frecuencia, divididos en variables de instancia y variables de clase, tales como tamaño, posición el color, los procedimientos. Un tipo abstracto de datos es una abstracción, que describe un conjunto de objetos en términos de una estructura de datos encapsulada u oculta y las operaciones sobre esta estructura. Lo tipos de datos abstractos, al contrario de los tipos de datos primitivos, pueden ser definidos por el usuario al construir una aplicación, en lugar de ser construidos por el diseñador del lenguaje subyacente. En las clases de programación los ADT incluyen métodos por ejemplo un ADT que represente longitudes expresadas en unidades inglesas incluirá métodos para sumar pies y pulgadas. El encapsulamiento, o su equivalente, el ocultamiento de información, se refiere a la practica de incluir dentro de un objeto todo lo que necesita, y de hacerlo, además, de tal manera que ningún objeto necesite conocer nunca su estructura interna. 1.2 Estructura de datos 1.2.1 Definición En programación, una estructura de datos es una forma de organizar un conjunto de datos elementales (un dato elemental es la mínima información que se tiene en el sistema) con el objetivo de facilitar la manipulación de estos datos como un todo o individualmente. Una estructura de datos define la organización e interrelacionamiento de estos, y un conjunto de operaciones que se pueden realizar sobre él. Las operaciones básicas son: Mauricio Ramos Davila 17

Alta, adicionar un nuevo valor a la estructura. Baja, borrar un valor de la estructura. Búsqueda, encontrar un determinado valor en la estructura para realizar una operación con este valor, en forma SECUENCIAL o BINARIO (siempre y cuando los datos estén ordenados) Otras operaciones que se pueden realizar son: Mauricio Ramos Davila 18

Ordenamiento, de los elementos pertenecientes a la estructura. Apareo, dadas dos estructuras originar una nueva ordenada y que contenga a las apareadas. Cada estructura ofrece ventajas y desventajas en relación a la simplicidad y eficiencia para la realización de cada operación. De esta forma, la elección de la estructura de datos apropiada para cada problema depende de factores como la frecuencia y el orden en que se realiza cada operación sobre los datos. 1.2.2 CLASIFICACIÓN DE ESTRUCTURAS DE DATOS: Una estructura de datos es una clase de datos que se puede caracterizar por su organización y operaciones definidas sobre ella. Algunas veces a estas estructuras se les llama tipos de datos. Y en ellas encontramos las siguientes: ESTRUCTURAS LÓGICAS DE DATOS: En un programa, cada variable pertenece a alguna estructura de datos explícita o implícitamente definida, la cual determina el conjunto de operaciones validas para ella. Las estructuras de datos que se discuten aquí son estructuras de datos lógicas. Cada estructura de datos lógica puede tener varias representaciones físicas diferentes para sus almacenamientos posibles. ESTRUCTURAS PRIMITIVAS Y SIMPLES: Son primitivas aquellas que no están compuestas por otras estructuras de datos por ejemplo, enteros, booleanos y caracteres. Otras estructuras de datos se pueden construir de una o mas primitivas. Las estructuras de datos simples que consideramos se construyen a partir de estructuras primitivas y son: cadenas, arreglos y registros. A estas estructuras de datos las respaldan muchos lenguajes de programación. ESTRUCTURAS LINEALES Y NO LINEALES: Las estructuras de datos simples se pueden combinar de varias maneras para formar estructuras mas complejas. Las dos cases principales de estructuras de datos son las lineales y las no lineales, dependiendo de la complejidad de las Mauricio Ramos Davila 19

relaciones lógicas que representan. Las estructuras de datos lineales incluyen pilas, colas y listas ligadas lineales. Las estructuras de datos no lineales incluyen grafos y árboles. 1.2.2.1 Lineales y no Lineales Estructura de datos lineales: arreglos, listas enlazadas, pilas y colas. Comprender, definir y utilizar os conceptos de las estructuras lineales arreglos unidimensionales, bidimensionales y arreglos paralelos. Conocer y utilizar las operaciones mas usuales con arreglos unidimensionales y bidimensionales. Manejar los términos punteros y arreglos de punteros. Definir una lista enlazada y conocer y hacer uso de las operaciones mas comunes Definir y diferenciar las estructuras de datos TAD pilas y colas. Utilizar cada una de estas estructuras en la codificación de un algoritmo, utilizando el lenguaje de programación C++. Arregl os: Es un conjunto de datos o una estructura de datos homogéneos que se encuentran ubicados en forma consecutiva en la memoria RAM (sirve para almacenar datos en forma temporal). Un arreglo puede definirse como un grupo o una colección finita, homogénea y ordenada de elementos. Los arreglos pueden ser de los siguientes tipos: De una dimensión. De dos dimensiones. De tres o más dimensiones. Mauricio Ramos Davila 20

Mauricio Ramos Davila 21

Listas enlazadas. Simples. Dobles. Mauricio Ramos Davila 22

Circulares. Multilistas. Clases para la implementación de Listas. Pilas. Una pila (stack en inglés) es una lista ordinal o estructura de datos en la que el modo de acceso a sus elementos es de tipo LIFO (del inglés Last In First Out, último en entrar, primero en salir) que permite Mauricio Ramos Davila 23

almacenar y recuperar datos. Se aplica en multitud de ocasiones en informática debido a su simplicidad y ordenación implícita en la propia estructura. Cola s. Una cola es una estructura de datos, caracterizada por ser una secuencia de elementos en la que la operación de inserción push se realiza por un extremo y la operación de extracción pop por el otro. También se le llama estructura FIFO (del inglés First In First Out), debido a que el primer elemento en entrar será también el primero en salir. Estructura de datos no lineales: árboles y grafos. Diferenciar entre las estructuras árboles y grafos. Conocer la representación en memoria de un árbol y de un grafo. Árboles. Árboles binarios. Árboles de expresión. Construcción de árbol binario. Recorrido de un árbol. Aplicación de árboles binarios. Árbol binario y de búsqueda. Opresiones con árboles binarios de búsqueda. Mauricio Ramos Davila 24

Grafos. Un grafo (específicamente, grafo simple no dirigido) es un par G D.V; E/ D.V.G/; V.E//, donde V es un conjunto finito no vacío de elementos llamados vértices y E es un conjunto de pares desordenados de elementos distintos de V llamados aristas. Es decir, una arista e 2 E tiene la forma fu; vg, donde u; v 2 V y u 6D v. La terminología en teoría de grafos varía muchísimo: prácticamente no hay dos textos que adopten la misma. En particular, los vértices de un grafo también reciben a veces el nombre de nodos, y las aristas arcos, ejes o líneas. 1.2.2.2 Dinámicas y Estáticas Datos estáticos: su tamaño y forma es constante durante la ejecución de un programa y por tanto se determinan en tiempo de compilación. El ejemplo típico son los arrays. Tienen el problema de que hay que dimensionar la estructura de antemano, lo que puede conllevar desperdicio o falta de memoria. Mauricio Ramos Davila 25 Datos dinámicos: su tamaño y forma es variable (o puede serlo) a lo largo de un

programa, por lo que se crean y destruyen en tiempo de ejecución. Esto permite dimensionar la estructura de datos de una forma precisa: se va asignando memoria en tiempo de ejecución según se va necesitando. Mauricio Ramos Davila 26