Aplicación de estructuras de datos

Slides:



Advertisements
Presentaciones similares
Arreglos Unidimensionales y Bidimensionales ESTRUCTURAS DE DATOS I
Advertisements

Unidad 5 Listas Enlazadas Bibliografía: Algoritmos y Estructuras de datos de Aguilar y Martinez. Unidad 9 Autor: Ing Rolando Simon Titiosky.
Estructuras de Datos (ARRAYS)
Programación I Teoría III
Tipos de Datos Básicos y Estructurados
Las estructuras de arreglos fueron usadas en las primeras computadoras digitales, cuando la programación se hacía todavía en lenguaje máquina, para tablas.
MANEJO DE ARRAYS EN C.
Tema 1. Introducción a la programación (Lenguaje java).
ARREGLOS y MATRICES UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO
Funcionamiento, programación
PROGRAMACION DE ESTRUCTURAS DE DATOS
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática
Teoría de lenguajes y compiladores
Arreglos Ing. Nahiby Castillo.
Estructuras de datos M.I.A Daniel Alejandro García López.
Unidad 3 Punteros.
Herramientas para el acceso directo a memoria en C++
¿Qué es un PUNTERO?: Un puntero es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable. No.
Vectores en java.
Ordenación, Clasificación
HILOS Y COMUNICACIÓN ENTRE PROCESOS
Tema 10: Gestión de Memoria
Departamento de Informática Universidad Técnica Federico Santa María Capítulo 2 “Subprogramas/Funciones - Arreglos” Arreglos-Arrays.
Matrices Es una estructura homogénea, compuesta por varios elementos, todos del mismo tipo y almacenados consecutivamente en memoria A cada elemento se.
TIPOS Y ESTRUCTURAS BÁSICAS DE DATOS
ESTRUCTURAS DE DATOS I Conocer, comprender y analizar algunos de los principales tipos de estructuras de datos.
Universidad Domingo Savio Facultad de Ciencias y Tecnología de la Información Carrera Ingeniería en Redes y Telecomunicaciones Materia : Programación I.
Estructura de Datos y Algoritmos
Clase 10: Estructuras de datos y arreglos.
1.1 Concepto y terminología
Programación IMC José Andrés Vázquez Flores. Definición Un arreglo es un conjunto finito e indexado de elementos homogéneos, que se referencian por un.
Administración de Memoria
75.40 Algoritmos y Programación I
Capítulo 7 Gestión de memoria.
Fundamentos de Programación
APRENDIZ: SANDRA L. CAICEDO C. ORDEN: 20194
Informática Ingeniería en Electrónica y Automática Industrial
Programación en C para electrónicos
Matrices Departamento de Computación Escuela de Ingeniería de Sistemas
Unidad 1: FUNDAMENTOS DE COMPUTACIÓN Y PSEUDOLENGUAJE
Tipos de Datos abstractos
Vectores y Matrices.
Objetivo Mostrar los fundamentos de la programación a través de ejemplos y prácticas utilizadas cotidianamente en el desarrollo de aplicaciones.
Son estructuras de datos que almacenan y recuperan sus elementos atendiendo a un estricto orden (LIFO Last – in, first –out Ultimo en entrar – primero.
Términos algoritmo diseñar algoritmo implementar algoritmo
ELEMENTOS DE COMPUTACIÓN Profesor: Guillermo Figueroa
Ordenamiento en lenguaje c
Estructura de datos I CIS - UABJB.
INSTITUTO TECNOLOGICO DE APIZACO
Visual Basic FUNCIONES Y PROCEDIMIENTOS
Capitulo 4 Arreglos o Arrays Unidimensionales Bidimensionales Strings
Arreglos: Vectores Departamento de Computación
Teoría de lenguajes y compiladores
Algoritmos y estructura de datos en I.O.
Arreglos Vectores y Matrices.
Arrays multidimensionales en JAVA
IMPLEMENTACION DE COLAS MEDIANTE LISTAS
Computación I. CI-2125 Tema VII
ARREGLOS BIDIMENSIONALES MATRICES Son un espacio de almacenamiento continuo, que contiene una serie de elementos del mismo tipo de datos. Desde el punto.
M.C. Meliza Contreras González
MEMORIA DINÁMICA.
PUNTEROS. Los punteros son de amplia utilización en programación y muchos lenguajes permiten la manipulación directa o indirecta de los mismos. Su razón.
ARRAYS Y COLECCIONES DE DATOS. ARRAYS Arrays – Matriz – Vector Elemento del lenguaje que nos permite agrupar un conjunto de valores del mismo tipo, y.
Tipos de Datos abstractos
ESTRUCTURAS DE DATOS “Conceptualización de estructuras de datos” Por: Eduardo Robayo.
PROGRAMACION DE APLICACIONES EN MEMORIA DEL COMPUTADOR = ALGORITMOS Y ESTRUCTURAS DE DATOS.
PROF. RAFAEL MONTENEGRO B. UNELLEZ-APURE Introducci Ó n a los Arreglos (“arrays”) en C++
UNIVERSIDAD TECNOLÓGICA DE PANAMÁ Facultad de Ingeniería de Sistemas Computacionales Programa de Lic. en Informática Educativa Computación.
“Estructuras de datos”
UNIVERSIDAD AUTÓNOMA DEL ESTADO DE MÉXICO FACULTAD DE INGENIERÍA COORDINACIÓN DE MATERIAS PROPEDÉUTICAS INGENIERÍA EN SISTEMAS ENERGÉTICOS SUSTENTABLES.
Transcripción de la presentación:

Aplicación de estructuras de datos Vectores y matrices (Arrays) Pilas y colas Listas

Estructuras de datos Clasificación de los tipos de datos según su estructura: Simples: Estándar (entero, real, carácter, booleano) No estándar (enumeración, subrango) Estructurados: Estáticos (arrays, cadena, registros, ficheros, conjuntos) Pilas Dinámicos (punteros, listas enlazadas, árboles, grafos) Colas

Los tipos simples son cuando cada dato representa un único elemento: Estándar: Están definidos por defecto por el lenguaje. No estándar: Tipos simples definidos por el usuario. Los tipos de datos estructurados, son cuándo un dato es una estructura que se construyen a partir de otros complementos. Estáticos: Ocupan un tamaño de memoria fijo, que tengo que definir antes de declararlo. Dinámicos: La estructura no ocupa un tamaño fijo de memoria, sino que ocupa la memoria que ocupa en cada momento. Se van a manejar a través del tipo de dato puntero. Puntero: Es una variable cuyo contenido es una dirección de memoria y esa dirección de memoria corresponde a la dirección de memoria de otra variable, que es la variable apuntada. Según el tipo de datos de la variable apuntada variará el tipo de puntero. A través de una variable de tipo puntero podemos establecer la conexión o enlace entre los elementos que van a formar la estructura, y según se realizan estos enlaces vamos a tener diferentes tipos de estructuras (listas enlazadas, árboles, grafos). Las pilas y las colas son 2 estructuras de datos con un funcionamiento especial, que pueden implementarse con memoria estática o dinámica.

ARRAYS UNIDIMENSIONALES: VECTORES. Un array unidimensional, o lineal, o vector, es un conjunto finito y ordenado de elementos homogéneos. Es finito porque tiene un número determinado de elementos. Homogéneo porque todos los elementos almacenados van a ser del mismo tipo. Ordenado porque vamos a poder acceder a cada elemento del array de manera independiente porque va a haber una forma de referenciar cada elemento. Para referenciar cada elemento de un array vamos a usar índices (valor que directa o indirectamente referencia la posición del array). Los índices tienen que ser de cualquier tipo de datos escalar (entre los que se puede definir un orden, y que entre 2 elementos consecutivos no puede haber infinitos elementos), aunque normalmente como índices se van a utilizar números enteros. Para referenciar un elemento de un array usaremos el nombre del array y entre corchetes [ ] el índice que determina la posición de ese elemento en el array.

Ejemplo: Se almacenan los nombres de los amigos Asignación de un dato a una posición concreta del array: <nom_array>[indice]valor nombre(10) nombre[3] =“Ramsés” escribir <nom_array>[indice] Para i ,1,amigo,1 escribir “Como se llama tu amigo”,i leer nombre(i) fin para Escribe “Cual amigo deseas ver”, Leer posición Escribe “Tu amigo es “, nombre(posicion)

ARRAYS BIDIMENSIONALES O MATRICES: En un array unidimensional o vector cada elemento se referencia por un índice, en un array bidimensional cada elemento se va a referenciar por 2 índices, y ahora la representación lógica ya no va a ser un vector, sino una matriz. Un array bidimensional de M*N elementos es un conjunto de M*N elementos, todos del mismo tipo, cada uno de los cuales se referencia a través de 2 subíndices. El primer subíndice podrá variar entre 1 y M si hemos empezado a numerar los índices por 1, y el segundo índice variará entre 1 y N, si hemos empezado a numerar los índices por el 1. Y más en general podemos definir un array de 2 dimensiones de la siguiente manera. <nom_array>: array [LI1..LS2,LI2..LS2] de <tipo> <var_array>[I , J] LI1 <= I <= LS1 LI2 <= J <= LS2

ORDENACIÓN Consiste en organizar un conjunto de datos en un orden determinado según un criterio. La ordenación puede ser interna o externa: Interna: La hacemos en memoria con arryas. Es muy rápida. Externa: La hacemos en dispositivos de almacenamiento externo con ficheros. Para determinar lo bueno que es un algoritmo de ordenación hay que ver la complejidad del algoritmo (cantidad de trabajo de ese algoritmo), se mide en el número de operaciones básicas que realiza un algoritmo. La operación básica de un algoritmo es la operación fundamental, que es la comparación.

Método de la burbuja: La filosofía de este método es ir comparando los elementos del array de 2 en 2 y si no están colocados correctamente intercambiarlos, así hasta que tengamos el array ordenado. Hay que comparar la posición 1 y la 2 y si no están ordenadas las intercambio. Luego la 2 y la 3 y así sucesivamente hasta que comparo las últimas posiciones. Con esta primera pasada lograremos que quede ordenado el último elemento del array. Teóricamente, en cada pasada iremos colocando un elemento, y tendríamos que hacer n –1 pasadas. Si en una pasada no se hacen cambios, el array ya está ordenado.

Procedimiento Burbuja

Método de inserción: Se supone que se tiene un segmento inicial del array ordenado, y hay que ir aumentando la longitud de segmento hasta que coincide con la longitud del array. Para ello insertaremos el siguiente elemento en el lugar adecuado dentro del segmento ordenado. TÉCNICAS Y DISEÑOS DE ALGORITMOS INICIANDO LA PROGRAMACIÓN Esto se hace moviendo cada elemento del segmento ordenado a la derecha hasta que se encuentre uno menor o igual al elemento que queremos colocar en el segmento o hasta que no tenemos elementos, y lo coloco en esa posición. Para arrancar este método se parte de que el segmento ordenado inicial este es la primera posición.

Procedimiento de inserción