Conferencia 2 TDA Lista lineal.

Slides:



Advertisements
Presentaciones similares
Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos.
Advertisements

Reutilización de código Elementos básicos del lenguaje Java Definición de variables, expresiones y asignaciones Fundamentos de Programación Departamento.
METODOS DE PROGRAMACION I Ing. Vania Flores Pinto.
Conferencia Aplicaciones Lineales.. Sumario Definición de aplicación lineal Matriz asociada a una aplicación lineal. Matrices semejantes. Imagen de un.
El controlador de relleno y las referencias relativas.
L ISTAS ENLAZADAS M.IA. Daniel Alejandro García López.
INSTITUTO TECNOLÓGICO SUPERIOR DE FELIPE CARRILLO PUERTO. MATERIA: Estructura De Datos TIPO: Presentación (Unidad 3 Estructura lineales ) DOCENTE: MTL.
Oscar Bedoya. Edificio 331, 2º piso, E.I.S.C. Estructuras de datos y algoritmos.
PROGRAMACIÓN ORIENTADA A OBJETOS SEGUNDA UNIDAD: “CLASES, OBJETOS Y MÉTODOS” IRVING YAIR SALAS CHÁVEZ ING. EN SISTEMAS COMPUTACIONALES - ITSLP.
Conceptos a Base de Datos
PROGRAMACIÓN ORIENTADA A OBJETOS
Árboles binarios. Algoritmos básicos
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS
ArrayList Collecciones
CONJUNTOS Álgebra Superior
Estructuras de Datos Aun en problemas muy simples surge la necesidad de agrupar valores elementales de alguna manera. Cuando representamos una caja de.
SQL Prof. Martín Contreras.
Fundamentos de programación
¿Qué es una computadora?
Arreglos. en Lenguaje C n
Listas enlazadas particulares
ANÁLISIS E INTERPRETACIÓN DE DATOS
Introducción a la Programación
IPOO 2 cuatrimestre 2017 Departamento de Ciencias e Ingeniería
Sistema de Bases de Datos
Leccion 5: Escogiendo un Tipo de Variable
Diccionarios y Mapeos Estructuras de Datos 2017.
Estructuras de datos y algoritmos
Listas Dinámicas.
Fundamentos de Probabilidad
FÓRMULAS Una fórmula es la representación de una operación aritmética en una hoja de cálculo. Características: Siempre comienza por el signo igual(=) ó.
MODELO RELACIONAL.
Tema 4 Elementos para el Desarrollo de Algoritmos
Unidad 3. Introducción a la programación
Qué son y características generales
Introducción ACTIVIDAD: magnitudes Conceptos:
Introducción a las estructuras de datos
ÁRBOLES El árbol es una estructura de datos muy importante en informática y en ciencias de la computación. Los árboles son estructuras no lineales,
PROGRAMACIÓN 1 INTRODUCCIÓN
ARRAYS Y COLECCIONES DE DATOS
Conceptos de Objetos, Clases y Otros Modelo Conceptual
Java – programación orientada a objetos programación ii – iee
LA EVALUACIÓN DE UNA INTERVENCIÓN
Sistemas Numéricos 1. Introducción 2. Sistema de Numeración Decimal
Estructuras de Datos MC Beatriz Beltrán Martínez Primavera 2018
Tipos de Datos abstractos
Introducción a los algoritmos
TEORÍA DE CONJUNTOS.
Tipos de Datos abstractos
Tema 3: Operadores Antonio J. Sierra.
Estructuras de Datos Dinámicas
TEMAS *Arboles Binarios *listas Abiertas y Cerradas - Inserción - Recorrido - Eliminación *Pilas - Concepto - Inserción - Recorrido -
CONJUNTOS Álgebra Superior
EL TDA COLA Estructuras de Datos.
Introducción a la Estadística Informática
Estructuras de Datos Aun en problemas muy simples surge la necesidad de agrupar valores elementales de alguna manera. Cuando representamos una caja de.
MC Beatriz Beltrán Martínez Verano 2018
Informática Ingeniería en Electrónica y Automática Industrial
Curso de Programación Estructurada
Informática Ingeniería en Electrónica y Automática Industrial
Informática Ingeniería en Electrónica y Automática Industrial
Árboles Binarios Estructuras de Datos.
COLAS O LINEA DE ESPERA EN C# SHARP. ¿QUE ES UNA COLA O LINEA DE ESPERA?  Es una estructura de datos que almacena elemento en una lista y permite acceder.
Informática Ingeniería en Electrónica y Automática Industrial
NATURALEZA DE LOS DATOS Valores Numéricos Son los valores que se pueden hacer cálculos aritméticosritméticos Tipos de valores Entero Real Cadena ( “ h”
UNIDAD 2 MODELO DE DATOS.
Departamento de Ingeniería de Sistemas e Industrial
INTRODUCCIÓN A LA INFORMÁTICA
Unida III: Análisis y Diseño de Sistemas Orientado a Objetos
BIENVENIDOS AL CURSADO DE
Transcripción de la presentación:

Conferencia 2 TDA Lista lineal

Sumario TDA. (Interfaz) TDA Lista Lineal TDA Número Entero TDA Número Complejo TDA Lista Lineal Definición (Interfaz List) Ejemplo Lista secuencial Lista enlazada

Introducción Simples Estructurados Referencias Suministrados Arreglos ( [ ] ) Cardinales (int, char) Clases (class) Números Reales (float, double) Referencias Referencias (new) Booleanos (bool) Definidos por el programador Enumerados

Introducción Con frecuencia se tiene un conjunto de elementos de la entidad del problema y la única relación entre ellas que nos interesa, es el hecho de que cada una tiene exactamente un sucesor, excepto la última y un antecesor, excepto la primera. Domingo – Lunes – Martes – Miércoles – Jueves – Viernes – Sábado 1941 – 1942 – 1943 – 1944 – 1945

TDA Un modelo matemático que describe o define un tipo de dato y en esta definición incluye la descripción de todo el comportamiento asociado al dato. Es muy importante aclarar que un TDA ni conlleva, ni está asociado a ninguna implementación.

TDA Cuando se define uno se hace en función de “Qué” se necesita modelar y no de “Cómo” debiera modelarse. Se centra en que necesidades se tienen y que el TDA debiera proporcionar una solución, sin pensar en cómo estas se resolverán.

TDA A la hora de implementar un TDA en la POO, es muy importante encapsular toda la lógica de almacenamiento y que la comunicación sea, sólo, a través de los métodos de acceso que se definen en la interfaz de la implementación del TDA. Es importante que se cree una muralla entre el “Qué” y el “Cómo”. (Ejemplo del TDA Dinero)

TDA Esto tiene como ventaja que los programas clientes que usen el TDA no dependan de la forma en la que estén almacenados los datos. Esto es importante ya a comienzos de un proyecto no se saben cual será la más adecuada forma de almacenar los datos.

TDA Esto se logra en Java mediante la utilización de una interfaz.

TDA Entero [-1, -2, -3, ... -∞] U [O, 1, 2, 3, ... ∞] No se indica cómo debe estar almacenado: Solo se implementan rangos (Short, byte, int, long). Suma Resta Signo-Cantidad. Multiplicación Codificación en binario. División

TDA Entero (Implementación)

TDA Entero (Implementación) float: 6 dígitos significativos. double: 15 dígitos significativos BigInteger: ∞

TDA Número Complejo Java no cuento con una estructura para representar este tipo de dato. Por tanto debemos pensar primeramente en un TDA número complejo y luego pensar en su implementación. Número complejo: (a,b) a + bi

TDA Número Complejo Operaciones: Suma Resta Producto División Potencia

TDA Número Complejo (Implement)

TDA Número Complejo (Implement)

TDA Lista lineal Normalmente las aplicaciones computacionales operan con conjuntos de informaciones, los cuales encierran relaciones estructurales importantes entre los datos. En su forma más simple, el conjunto de informaciones de una aplicación puede ser una lista lineal de elementos si las propiedades estructurales relevantes del conjunto encierran las respuestas a preguntas como las siguientes:

TDA Lista lineal ¿Cuál es el primer elemento de la lista? ¿Cuál es el último elemento? ¿Cuál elemento precede y cuál sigue a uno dado? ¿Cuántos elementos tiene la lista?

TDA Lista lineal (Definición) Una lista lineal es un conjunto de N nodos l1, l2, … lN, con N ≥ 0, cuyas propiedades estructurales esenciales incluyen sólo las posiciones lineales (unidimensionales) relativas de los nodos; para ella se definen operaciones como las siguientes:

TDA Lista lineal (Definición) Determinar la cantidad de nodos de la lista Tener acceso a un nodo Insertar un nodo en la lista Ordenar la lista de acuerdo a un criterio Eliminar un nodo de la lista Buscar el o los elementos de la lista con una característica dada, etc. Combinar dos o más listas en una Dividir una lista en dos o más listas

TDA Lista lineal (Definición) N = 0 denota a la lista vacía, o sea, una lista que no tiene elemento. Si N > 0, l1 es el primer nodo Si 1 < k < N, lk es precedido por el nodo lk-1 y seguido por el nodo lk+1 Si N > 0, lN es el último nodo.

TDA Lista lineal (Ejemplo) Un ejemplo de este TDA lo constituye el listado de los estudiantes de un grupo. Cada estudiante del grupo está representado por un nodo de la lista y la información que de él se almacena en el nodo puede variar de una aplicación a otra.

TDA Lista lineal (Ejemplo) Operaciones: Inserciones de estudiantes en el grupo Eliminaciones de estudiantes del listado Accesos a la información de un estudiante en cuestión Verificaciones para determinar si un estudiante pertenece al grupo o no Entre otras.

TDA Lista lineal (Ejemplo) Nótese que el mismo modelo de lista lineal, como TDA, nos sirve para representar y manipular la información relativa a trabajadores de una fábrica o a piezas en un almacén, etc. Evidentemente, se está haciendo una abstracción de los datos que va a manipular nuestra aplicación. Todo depende de lo que definamos como Nodo.

TDA Lista lineal (Ejemplo) Un conjunto de operaciones sobre este TDA puede ser: boolean add(x): Añade el elemento x al final de la lista. boolean add(i, x): Añade el elemento x a la lista en la posición i, haciendo que los elementos li, li+1, … lN pasen a ser los elementos li+1, li+2, … lN+1 y que la longitud de la lista sea N +1. boolean addAll(Collection): Añade todos los elementos en el parámetro. Devuelve verdadero si se añadió alguno de los elementos.

TDA Lista lineal (Ejemplo) void clear(): Elimina todos los elementos del contenedor. boolean contains(0bject): Devuelve verdadero si el contenedor almacena el parámetro. Object get(i): Devuelve el elemento almacenado en la posición i de la lista o el valor nulo si la posición i no existe. boolean remove(i): Elimina el elemento almacenado en la posición i de la lista. haciendo que los elementos li+1, li+2, … lN pasen a ser los elementos li, li+1, … lN-1 y que la longitud de la lista sea N -1. Devuelve verdadero si realiza la operación.

TDA Lista lineal (Ejemplo) boolean remove(x): Si el parámetro x está en el contenedor, se elimina una instancia de ese elemento. Devuelve verdadero si se produce alguna eliminación. int size(): Devuelve la longitud de la lista, o sea, la cantidad de elementos que la conforman. boolean isEmpty(): Devuelve verdadero si la lista está vacía, y falso en caso contrario.

TDA Lista lineal A la hora de implementar el TDA Lista hay que tener en cuenta otros aspectos como la forma de almacenamiento y su estructura interna. Por su forma de almacenamiento, la lista lineal se puede implementar en una de las siguientes disposiciones: Secuencial Enlazada

Lista Secuencial Una de las formas más simples de implementación de este TDA parte del uso de un arreglo unidimensional. En este caso, todos los elementos que conforman la lista estarían almacenados en posiciones de memoria consecutivas. Por esta razón, se dice sigue una disposición secuencial en la memoria de la computadora.

Lista Secuencial +permite acceder a cualquier elemento de la estructura de datos en tiempo constante. -Existe un límite de la cantidad de elementos a existir en la lista.

Lista Enlazada Asigna memoria para el almacenar los elementos de la lista conforme se va necesitando, es decir a medida que se añaden o insertan los elementos, y se conectan los elementos de la lista con referencias. La memoria, es por supuesto, liberada cuando ya no se necesita más un elemento en la lista.

Lista Enlazada + No hay problemas en tiempo de ejecución al insertar elementos. - El acceso a un elemento de la lista tiene un costo de un O(n).

Estudio Independiente Capítulo 6 del libro de Texto. Preparación previa de la CP.

Conferencia 2 TDA Lista lineal