Subido por Adriana Luna

Introduccion- clasificacindelasestructurasdedatos

Anuncio
ALGORITMOS Y
ESTRUCTURAS DE DATOS III
Esta materia presenta una profundización de las
materias Algoritmos y Estructura de Datos I y II
•
•
•
•
•
•
Se conoce que el mundo real tiene problemas que no se pueden
modelar con estructuras simples, por eso es que se requieren de
estructuras no lineales y recursivas.
La materia es anual
Carga horaria 4 hs
Dias de cursados lunes y martes de 20:00 a 22:00 hs
Regimen de Aprobacion: 2 parciales- TP – Final.
Ahora vamos a ver como esta compuesta la materia.
1°Vamos a revisar que es un algoritmo
2°Vamos a analizarlo para estudiar
su complejidad
3°como elegir un algoritmo cuando tenemos
Mas de uno para resolver un problema
4°Vamos a ver cuando un algoritmo
es eficiente y cuando no.
5°y también vamos a ver distintas
técnicas generales para diseñar algoritmos
6° y Vamos a mencionar que es un
algoritmo aproximado y heuristico
Aquí vamos a ver la complejidad computacional
Vamos a ver cuando un problema esta bien resuelto o no.
Clasificación de las
estructuras de datos
Fuente: Facomsys
¿Qué son las estructuras de datos?
Son colecciones de elementos de datos relacionados. Los objetos
arreglo son estructuras de datos que consisten en elementos de datos
relacionados, del mismo tipo. Los arreglos facilitan el procesamiento de
grupos de valores relacionados. Los arreglos conservan la misma
longitud una vez creados
Estáticas:
• Arreglos
¿Qué es un arreglo?
Un arreglo es una estructura de datos utilizada para almacenar datos
del mismo tipo. Los arreglos almacenan sus elementos en ubicaciones
de memoria contiguas. En Java, los arreglos son objetos.
Clasificación de los arreglos:
• Arreglo Unidimensional: Nos referimos a un vector de datos
• Arreglo Bidimensional: Nos referimos a una estructura de doble
entrada, es decir que tiene filas y columnas
• Arreglo Tridimensional: Extendemos una dimensión mas, lo que se
traduce en tener filas, columnas y profundad
• Arreglo Multidimensional: Nos referimos a que cada dimensión,
puede tener un tamaño diferente a las demás dimensiones
Arreglo como estructura estática
• La particularidad que un arreglo como una estructura estática, viene desde
el momento en que el arreglo se define en tiempo de diseño, nosotros
podemos establecer el tamaño del arreglo, de una manera inicial, cuando
nosotros usamos esta estructura, el tamaño de la estructura esta definido
por el tamaño inicial de la estructura, lo que implica que la estructura no
puede crecer, ni disminuir en tiempo de ejecución, por eso se les llama
estáticas, esto tiene algunas complicaciones y efectos durante la ejecución
lo que significa que cuando la estructura llega a su limite de capacidad, nos
tenemos que conformar con ese limite definido, no podemos ajustar el
tamaño de la estructura durante la ejecución de la operación, para ello
debemos detener la aplicación y modificar el tamaño de la ejecución y
posteriormente volver a cargar los datos.
Dinamicas
• Lineales
• Pilas
• Colas
• Listas
• No Lineales
• Arboles
• Grafos
Pilas
• Una pila es una estructura de datos que principalmente tiene dos
operaciones: Apilar y desapilar
• Es un tipo de estructura que sigue un patrón LIFO (Last in, First Out),
es decir el ultimo en entrar es el primero en salir
Colas
• Una cola es una estructura de datos que almacena elementos en una lista y permite acceder a los
datos por uno de los dos extremos de la lista. Un elemento se inserta en la cola (parte final) de la
lista y se suprime o elimina por la frente (parte inicial, cabeza) de la lista.
• Los elementos se eliminan (se quitan) de la cola en el mismo orden en que se almacenan y, por
consiguiente, una cola es una estructura de tipo FIFO (first-in-first-out, primero en entrar,
Primero en salir o bien primero en llegar/primero en ser servido). o El servicio de atención a
clientes es un ejemplo típico de cola o el cajero de un banco
Listas
• Una lista es una secuencia de elementos dispuesto en un cierto orden, en la que cada elemento tiene
como mucho un predecesor y un sucesor. El número de elementos de la lista no suele estar fijado, ni
suele estar limitado por anticipado.
• Representaremos la estructura de datos de forma gráfica con cajas y flechas. Las cajas son los
elementos y las flechas simbolizan el orden de los elementos.
• La estructura de datos deberá permitirnos determinar cuál es el primer elemento y el
último de la estructura, cuál es su predecesor y su sucesor (si existen de cualquier
elemento dado). Cada uno de los elementos de información suele denominarse nodo.
• La lista también puede representarse de forma simbólica escribiendo sus elementos
separados por comas y encerrados entre corchetes. Por ejemplo:
• ["rojo","verde","azul","amarillo"]
• El uso de listas en Java es una forma útil de almacenar y manipular
grandes volúmenes de datos, tal como haríamos en una matriz o
arreglo, pero con una serie de ventajas que hacen de este tipo de
variables las preferidas para el procesamiento de grandes cantidades
de información.
• Las listas en Java son variables que permiten almacenar grandes
cantidades de datos. Son similares a los Array o a las Matrices.
Arboles
• Un árbol es una estructura jerárquica de datos que imita la forma de
un árbol, un conjunto de nodos conectados. Un nodo es la unidad
sobre la que se construye el árbol y puede tener ceros o mas nodos
hijos conectados a él. Se dice que un nodo a es padre de un nodo b si
existe un enlace desde a hasta b. Solo puede haber un único nodo sin
padres, que llamaremos raíz. Un nodo que no tiene hijos se conoce
como hoja y a los demás nodos se les conoce como ramas.
• Formalmente, un árbol se puede definir de manera recursiva, se utiliza la
recursión para definir un árbol porque es una característica inherente a los
mismos, como:
• 1. Un solo nodo es, por si mismo, un árbol. Ese nodo es también la raíz de
dicho árbol.
• 2. Se supone que n es un nodo y que A1 , A2 ,..., Ak son arboles con raíces
n1 , n2 ,…, nk respectivamente. Se puede construir un nuevo árbol
haciendo que n se constituya en el padre de los nodos n1 , n2 ,…, nk . En
dicho árbol, n es la raíz y A1 , A2 ,..., Ak son los subarboles (o arboles hijos)
de la raíz. Los nodos n1 , n2 ,… ,nk reciben el nombre de hijos del nodo n y
el nodo n recibe el nombre de padre de dichos nodo
• Como ejemplo se puede considerar el índice de un libro.
• T1 (Tema 1)
• 1.1.-(Pregunta 1 del Tema 1)
• 1.2.-(Pregunta 2 del Tema 1)
• T2 (Tema 2)
• 2.1.-(Pregunta 1 del Tema 2)
• 2.1.1.-(Pregunta 1 de la pregunta 1 del Tema 2)
• 2.1.2.-( Pregunta 2 de la pregunta 1 del Tema 2)
• 2.2.-(Pregunta 2 del Tema 2)
• 2.3.-(Pregunta 3 del Tema 2)
• T3 (Tema 3)
Árbol del índice:
Grafos
• Desde un punto de vista intuitivo un grafo es un
conjunto de nodos unidos por un conjunto de
arcos. Un ejemplo de grafo que podemos
encontrar en la vida real es el de un plano de
trenes. El plano de trenes está compuesto por
varias estaciones (nodos) y los recorridos entre las
estaciones (arcos) constituyen las líneas del
trazado.
• La siguiente clasificación, aunque no es completa, presenta las
principales características que nos podemos encontrar en los grafos:
• Grafo conexo: Cuando entre cada dos nodos del grafo hay un camino.
• Bosque: Es un grafo sin ciclos.
• Arbol libre: es un bosque conexo.
• La representación más extendida de los grafos es mediante lo que se
llaman Matrices de adyacencia.
• Como medida ante la estática los arreglos, tenemos estructuras
dinámicas, esto significa que el tamaño de estructura puede ir
creciendo o disminuyendo en tiempo de ejecución, lo que significa
que el tamaño de la estructura es variante, y por lo tanto siempre
estaremos utilizando la cantidad de memoria necesario para manejar
o manipular los datos que la aplicación requiere, dentro de esta
calificación tenemos las lineales y no lineales, cada una de estas
estructuras tiene una lógica o algoritmo de funcionamiento partículas
Descargar