Está en la página 1de 17

DS & algoritmos

Que son las estructuras de datos


Son repositorios (almacenes) y son usados como una forma de almacenar y organizar (ordenar)
datos en un computador
Se deben caracterizar por ser accesibles y poder ser actualizadas eficientemente
Existen muchos tipos de estructuras de datos, la conveniencia de elegir una, es una decisión que
va depender del tipo de problema a resolver
Tipos de estructuras de datos
Existen algunas agrupaciones preliminar entre estructuras de datos en:
Lineares
No – Lineales
Estructuras lineales
En las estructuras lineales, lo elementos (datos) son ordenados en secuencia “uno tras
otro”. En general son fáciles de implementar aunque para usos en grandes cantidades de datos o
complejidad su eficiencia decrece

Ejemplo de estructuras de datos lineales son: matrices, pilas y colas


Indexación y secuencia en python
Tuplas
Es un conjunto inmutables(estático) de elemento implementado dentro de Python
Es una secuencia de elementos (lineal) que acepta anidamiento
Listas
Muy parecido a lo que se conoce como matriz, es una estructura muy versátil , capaz de mutar y
ofrecer muchas funcionalidades lo que la hace un elemento muy popular dentro de la
comunidad asociada al lenguaje
Array de Numpy
Estrictamente hablando es lo mas cercano a la idea de matriz que se conoce en matemáticas ya
que tiene desarrollado una gran cantidad de métodos aplicada al algebra lineal
Para ocuparlo se debe instalar la librería Numpy (en Windows poner CMD y pegar pip
install numpy)
Pilas y colas
Estructuras muy útiles en el modelamiento de procesos, son tipo especiales de arreglos
secuenciales caracterizados por una lógica de llegada y salida de elementos de la estructura de
datos;
En el general se habla de pilas cuando se cumple la regla LIFO (Last in First Out)
En cambio para las colas se tiene la regla FIFO (First in First out)
Ambas estructuras no se encuentran desarrolladas de manera nativa , por tanto debe hacer un
desarrollo para poder implementar estas estructuras
(http://conocepython.blogspot.com/p/pilas-y-colas.html)
Estructuras no lineales
Las estructuras no lineales no se presentan en sequencia
Su orden se realiza en base a jerarquía, donde hay conexión entre un elemento y otro
Ejemplo de estructuras no lineales son: grafos y arboles
Diccionarios
Son estructuras tipo Hash , ampliamente aplicadas y desarrolladas en Python
A diferencia de los anteriores métodos, donde existe una secuencia y un índice que describe la
secuencia de cada elemento con estructura, existe un palabra (clave) que es el índice y
proporciona el lugar (valor) a los datos
Grafos
Los grafos son una estructura de datos que consiste en dos componentes:
Vectices o nodos
Aristas o arcos representados por el par (u,v) donde tanto u como v son nodos
Existen dos formas principales de como representar a un grafo
Matriz de adyacencia
Lista de adyacencia
Matriz de adyacencia
Es una matriz 2D de tamaño NxN m donde N es el numero total de nodos del grafo
i = posición del nodo i
J = posición del nodo j
Si la posición i,j de la matriz es 1, significa que existe un arco que conecta al nodo i con el nodo j
Lista de adyacencia
Las listas de adyacencia son una forma de representa grafos como una matriz de listas, donde
existe una lista de todos los nodos del grafo, asociado a cada elemento de esta lista se encuentra
una lista que enumera todos los nodos que se encuentran asociado a ese elemento en particular
Iteraciones
Son elementos esenciales de cualquier lenguaje de programación, son un elemento que brinda
dinamismo a la estructura de datos y son fundamentales para ensamblar cualquier tipo de de
algoritmo, método o funcionalidad.
En Python las iteraciones se llevan a cabo mediante 2 formas
1. Ciclo for
2. Ciclo while
BFS en grafos
BFS o búsqueda en anchura, es un algoritmo de búsqueda para recorrer grafos y encontrar
elementos de un grafo , basa su funcionamiento en la un array de visita y en una cola de nodos
por visitar
DFS(depht first search )
Topological sorting
Algoritmo de Dijkstra
Algoritmo de Prim
Algoritmo de Ford-Fulkerson

También podría gustarte