¿Qué son las estructuras de datos?

2/29
Recursos

Aportes 46

Preguntas 2

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

o inicia sesión.

La analogía es perfecta, una estructura de dato nos permite ordenar de cierta forma la información mediante un lenguaje de programación.
.
¿Cuál estructura de datos es mejor?
Ninguna es mejor que otra, todo depende de lo que necesites hacer una se adaptará mejor que la otra para tu problema en cuestión. El objetivo es conocerlas y atacar el problema con la estructura que mejor se te adapte.

Un resumen de estructuras de datos

🤔 ¿Qué son las estructuras de datos?

<h4>Ideas/conceptos claves</h4>

Estructuras de datos son colecciones de valores, las relaciones entre ellos y las funciones u operaciones que se pueden aplicar a los datos.

<h4>Apuntes</h4>
  • Nos ayudan a
    • Solucionar problemas
    • Guardar datos
    • Estructurar datos
<h3>👕 Hablemos de ropa</h3>
  • Nos pueden dar un poco ordenada o desordenada
  • Nuestra tarea seria ordenarla
  • Trabajar con estructuras de datos
    • Nos ayuda a guardar muchas cosas entre ellas información
  • Si no la ordenamos de una manera correcta y ordenada, pero si el ropero si se puede cerrar solemos decir que nuestra tarea está terminada
  • Pero si llega alguien y pedimos que nos ayude a sacar una prenda en específico, le llegara a costar sacarla al igual que a ti
  • Es ahi donde encontramos otros modelos para ordenarlos
    • Por colores
    • Utilidad
    • Formas
  • Es ahi donde podemos observar que tenemos mayor espacio libre para nuestra tarea
  • Es ahi donde podemos usar este modelo para nuestro código y empezar a hablar de estructuras de datos
<h3>📚 Estructuras de datos</h3>
  • Existen diferentes formas para guardar información
  • Nos ayudan a resolver problemas en especifico
  • No todas son buenas para todos los casos
  • JavaScript de por si no tiene algunas estructuras de datos construidas ⇒ Nosotros debemos construirlas

RESUMEN: Las estructuras de datos son aquellas que nos permiten optimizar el espacio y el orden en que almacenamos la información, nos ayudan en problemas específicos y algunos lenguajes tienen estructuras de datos ya definidas por el lenguaje en si mientras en otros lenguajes como JavaScript es necesario definirlas

Les comparto este repositorio que encontré sobre algoritmos y estructuras de datos en Javascript.

📦 Las estructuras de datos permiten realizar software más eficiente optimizando los recursos.

Estructuras de datos: Colecciones de valores, las relaciones entre ellos y las funciones/operaciones que se pueden aplicar a los datos.

El ejemplo me quedó muy claro, porque siempre me pregunté ¿Cuándo usar árboles o grafos? y si no encuentro uso para qué aprenderlo?

En la universidad (En la asignatura de Algoritmos 2 y 3) vi estructuras de datos en Java. Y pues no me lo imaginaba en JavaScript y menos veía sus usos. Este curso será genial para ello.

Diego en acción 😍. Estoy seguro de que todos estamos más que agradecidos!

Mi apunte de la clase:

Las estructuras de datos son la forma en que se organizan los datos para ser utilizados por lenguajes de programación.
Se dividen en dos principalmente:
Estáticas:
Estas las utilizamos en el día a día, son los arrays, los archivos y los registros.
Dinámicas:
Las dinamicas son las que se crean mediante punteros, se encuentran pilas, colas, listas ligadas, listas doblemente ligadas, grafos, entre otros.
Estas últimas nos permiten optimizar mucho más el software

Me encantan muchísimo los cursos de este profesor, es simplemente un crack para explicar.

jajajajaja me drio risa al principio por que soy de esos dev que venia omitiendo esto por miedo, anyways! Vamos a darle

Para aquellos que quieran, aquí está la definición del profe sobre estructuras de datos.

“Las estructuras de datos son colecciones de valores, las relaciones entre ellos y las funciones entre ellos y las funciones u operaciones que se pueden aplicar a los datos”

Guau, había leído bastante sobre el tema y no terminaba de entenderlo hasta que @Degranda hizo la analogía del ropero y la cabeza me explotó a la vez que me concluyeron todos los puntos que tenía flojos del tema. Gracias Diego por hacer súper simple el entendimiento de los temas abordados !

Que son las estructuras de datos?

“Las estructuras de datos son colecciones de valores, las relaciones entre ellos y las funciones entre ellos y las funciones u operaciones que se pueden aplicar a los datos”

Estructura de datos en programación

Las estructuras de datos en programación son un modo de representar información en una computadora, aunque además, cuentan con un comportamiento interno. ¿Qué significa? Que se rige por determinadas reglas/restricciones que han sido dadas por la forma en que está construida internamente.

¿Por qué es importante conocerlas? Cuando inicias en el mundo de la programación y te metes de lleno en el mundo de JavaScript, las estructuras de datos son fundamentales. Conocer sobre listas, árboles y grafos te permitirá organizar mejor la información y crear código más eficiente. Además, es clave para mejorar tus habilidades técnicas y enfrentarte con éxito a cada challenge en tus futuras entrevistas laborales.

¿Para qué sirven las estructuras de datos?

En el ámbito de la informática, las estructuras de datos son aquellas que nos permiten, como desarrolladores, organizar la información de manera eficiente, y en definitiva diseñar la solución correcta para un determinado problema.

Ya sean las más utilizadas comúnmente -como las variablesarraysconjuntos o clases- o las diseñadas para un propósito específico -árbolesgrafostablas, etc.-, una estructura de datos nos permite trabajar en un algo nivel de abstracción almacenando información para luego acceder a ella, modificarla y manipularla.

¿Cuáles son los tipos de estructuras de datos?

Primero, debemos diferenciar entre estructura de dato estática y estructura de dato dinámica

Las estructuras de datos estáticas son aquellas en las que el tamaño ocupado en memoria se define antes de que el programa se ejecute y no puede modificarse dicho tamaño durante la ejecución del programa, mientras que una estructura de datos dinámica es aquella en la que el tamaño ocupado en memoria puede modificarse durante la ejecución del programa.

Cada tipo de estructura dependerá del tipo de aplicación que se requiera. Una típica dentro de las estructuras de datos estáticas son los arrays:

Arrays

¿Qué es un array en programación? Un array es un tipo de dato estructurado que permite almacenar un conjunto de datos homogéneo y ordenado, es decir, todos ellos del mismo tipo y relacionados. Su condición de homogéneo, indica que sus elementos están compuestos por el mismo tipo de dato, y su condición de ordenado hace que se pueda identificar del primer al último elemento que lo compone.

Estructura de datos dinámicas

Por otro lado, vimos que en programación existen estructuras de datos dinámicas, es decir, una colección de elementos -nodos- que normalmente se utilizan para dejar asentados registros. A diferencia de un array que contiene espacio para almacenar un número fijo de elementos, una estructura dinámica de datos se amplía y contrae durante la ejecución del programa. Veamos algunos casos:

Estructura de datos lineales

Las estructuras de datos lineales son aquellas en las que los elementos ocupan lugares sucesivos en la estructura y cada uno de ellos tiene un único sucesor y un único predecesor, es decir, sus elementos están ubicados uno al lado del otro relacionados en forma lineal.

Hay tres tipos de estructuras de datos lineales:

  • Listas enlazadas
  • Pilas
  • Colas

Listas enlazadas

En las estructuras de datos, las listas enlazadas se construyen con elementos que están ubicados en una secuencia. Aquí, cada elemento se conecta con el siguiente a través de un enlace que contiene la posición del siguiente elemento. De este modo, teniendo la referencia del principio de la lista podemos acceder a todos los elementos de la misma.

Lista simplemente enlazada.

Pila

La pila es un tipo especial de lista lineal dentro de las estructuras de datos dinámicas que permite almacenar y recuperar datos, siendo el modo de acceso a sus elementos de tipo LIFO (del inglés Last In, First Out, es decir, último en entrar, primero en salir). ¿Cómo funciona? A través de dos operaciones básicas: apilar (push), que coloca un objeto en la pila, y su operación inversa, desapilar (pop), que retira el último elemento apilado.

Estructura de datos no lineales

Las estructuras de datos no lineales, también llamadas multienlazadas, son aquellas en las que cada elemento puede estar enlazado a cualquier otro componente. Es decir, cada elemento puede tener varios sucesores o varios predecesores.

Existen dos tipos:

  • Árboles
  • Grafos

Árboles

En estructura de datos, los árboles consisten en una estructura no lineal que se utiliza para representar datos con una relación jerárquica en la que cada elemento tiene un único antecesor y puede tener varios sucesores.

Los mismos se encuentran clasificados en: árbol general, un árbol donde cada elemento puede tener un número ilimitado de sub árboles y árboles binarios, que son una estructura de datos homogénea, dinámica y no lineal en donde a cada elemento le pueden seguir como máximo dos nodos.

Grafos

Otro tipo de no lineal de estructura de datos en programación, son los grafos. Se trata de una estructura matemática formada por un conjunto de puntos —una estructura de datos— y un conjunto de líneas, cada una de las cuales une un punto a otro. Los puntos se llaman nodos o vértices del grafo y las líneas se llaman aristas o arcos.

Ya sabes, las estructuras de datos en programación son un aspecto clave para conocer. Nos permiten mejorar nuestro código y habilidades técnicas, y en definitiva, resolver de manera eficiente problemas complejos.

Conclusiones:

  • Son la forma de guardar y estructurar la información, los datos.
  • Con estas podemos guardar los datos de manera tal que podremos operar con los datos de manera eficiente, como búsquedas.
  • Existen diferentes tipos de estructuras, las cuales elegiremos de acuerdo al problema que vamos a resolver.
  • “las estructuras de datos son colecciones de valores, las relaciones entre ellos y las operaciones o funciones que se pueden aplicar a estos datos”

Como siempre De granda explicando con analogías entendibles y realistas los temas,
Espero mucho de este gran curso que apenas comienza!.

Diego tiene que dar el cursor de Javascript avanzado.

Gracias diego ahora podre acomodar mejor mi estanteria xd

La estructura de datos debes verla como la tabla del índice de un libro, tiene un “orden” una secuencia definida, ¿Cuál será el orden y esa secuencia?

Bueno así como en el libro el autor es quien define esa tabla de contenido y su orden, en las estructuras de datos eres tu el autor, defines cómo hacerlo, solo es tener en cuenta que sea de una manera que otras “personas” entiendan como esta construida tu estructura y puedan entenderla y usarla.

En términos prácticos jeje

En resumen.

Una estructura de datos es la manera de organizar información y manipular los datos de la manera más eficiente posible. Hay muchas estructuras que nos permiten esta manipulación y organización.

Genial ejemplo, imposible que no se te quede el concepto

Gracias por la clase

ESTRUCTURAS DE DATOS

  • Son colecciones de valores, las relaciones entre ellos y las funciones u operaciones que se pueden aplicar a los datos
  • En ciencias de la computación, una estructura de datos​ es una forma particular de organizar datos en una computadora para que puedan ser utilizados de manera eficiente
  • En el ámbito de la informática, las estructuras de datos son aquellas que nos permiten, como desarrolladores, organizar la información de manera eficiente, y en definitiva diseñar la solución correcta para un determinado problema

Expectacular el ejemplo!

  • Si no contamos con una estructura de datos clara la información se encuentra en bruto, en caos, sin estructura
    • Esto como consecuencia hace que los datos sean más dificil de predecir y de interactuar con ellos.
      • Existen peores y mejores modelos para cualquier tarea, incluido el de guardar la ropa

Ok, ya entendí: “Ser Mary Kondo con los datos”.

Entré queriendo ver estructuras de datos y terminé con mi ropero todo ordenado 😳😎

Las estructuras de datos las aprendí el C++, es de esos amores que duelen, pero son de los mejores que marcan tu vida. 💚

Estoy muy emocionada por este curso!! Tenía mucho tiempo interesada en aprender sobre estructuras de datos. Gracias #PlatziDay

Estructuras de datos

Son esturcturas que organizan y relacionan la información de manera específica y sistemática, además de posibilitar operar con ella de manera predecible.

Estructuras de Datos
·
Son una colección o conjunto de valores, las relaciones entre estos valores y las funciones, operaciones o acciones con los que pueden trabajar o usar. Así, es una forma de modelar, organizar u ordenar, guardar y estructurar la información. Este orden o estructura permite tener un acceso a estos de forma más rápida.
·
Existen diferentes formas que ayudan a solucionar problemas específicos. Y JavaScript no posee algunas estructuras de datos internamente, por lo que debemos construirlas nosotros mismos.
RESUMEN:

  1. Ordenan la información, valores dentro de una colección.
  2. Usan diferentes modelos de estructuras para solucionar diferentes problemas.
  3. Hay lenguajes que con solo llamar las estructuras de datos construidas internamente, que con solo esa acción se guarda la información.
  4. Con JavaScript se necesita construir las estructuras de datos.

Despues de arduo esfuerzo, toca sumergirse mas y mas en Backend zone heheheh

Nunca lo había pensado de esa forma, es una muy buena analogía.

PROGRAMACION ORIENTADA A OBJETOS (POO)

• Es un paradigma de programación que usa objetos y sus interacciones, para diseñar aplicaciones y programas informáticos. Está basado en varias técnicas, incluyendo herencia, abstracción, polimorfismo y encapsulamiento. (wikipedia)

• Object-oriented programming is a method of programming based on a hierarchy of classes, and well-defined and cooperating objects. (Oracle-Sun)

Clases

Una clase, define un conjunto de elementos que tienen características (atributos) y comportamientos (métodos) comunes.

Objeto

• Son instancias (o casos) particulares de las clases.

• Todo objeto tiene los mismos atributos y métodos que la clase que lo define.

• Un objeto da valores particulares a los atributos de la clase.

Relaciones entre Clases

• Conexión semántica entre clases

• Permite que una clase conozca los atributos, comportamientos y las relaciones de otras clases

• Se destacan:

• Dependencia

• Asociación

• Generalización o Herencia

DEPENDENCIA

• Es una relación de uso, implica que una clase utiliza a la otra, sin embargo, un cambio en la especificación de una clase puede afectar a aquella que la utiliza.

• Se representa con una flecha punteada

Ejemplo: la clase UsaPunto en su método main podría crear objetos de la clase Puntos, almacenarlos en arreglos y obtener el punto que está mas alejado

ASOCIACION

• Especifica que los objetos de una clase incluyen o trabajan con objetos de otra clase. Es una relación del tipo “todo/parte”, en la que una clase incluyente (denominada base es el todo) que consta de elementos mas pequeños (las partes)

• Puede incluir nombre y multiplicidad (número de instancias de una clase que se relacionan con una instancia de otra clase).

• Se representa con una línea continua y su navegación puede ser bidireccional o unidireccional (en este caso, la punta de flecha indica el sentido de la asociación).

Ejemplo: en la asociación mostrada solo se puede navegar de TrianguloColoreado a Punto

TIPOS DE ASOCIACION

• Asociación por Composición - en donde el tiempo de vida del objeto incluido (la parte) está condicionado por el tiempo de vida del objeto que lo incluye (el todo).

• Se representa con un diamante de color negro en la clase que incluye.

• Asociación por Agregación - en donde el tiempo de vida del objeto incluido (la parte) es independiente del tiempo de vida del objeto que lo incluye (el todo).

• Se representa con un diamante de color blanco en la clase que incluye.

Ejemplo: teniendo en cuenta que si no existe una empresa no pueden existir sus empleados, mientras que una empresa agrupa varios clientes

HERENCIA

• Es la relación entre una clase general (superclase) y clases especificas (subclase).

Se conoce como relación “es un” o “es una”.

• La herencia puede ser simple o múltiple. En Java es simple, jerárquica.

HERENCIA

• Proceso mediante el cual una clase y como consecuencia su objeto adquiere las propiedades no privadas de otro.

• Aparece una nueva visibilidad para los atributos de las superclases, denominada protegida (protected) que permite que los métodos de las subclase puedan accesar los atributos de la superclase sin necesidad de métodos getteres

despues de posponer tanto el tema de estructuras de datos, heme aqui, JAJA.

MY NOTES FOR HAT ARE THE ESTRUCTURES OF DATES

La estructura es un tema que de entrada genera mucho miedo a los programadores, la estructura de datos se utiliza en cualquier lado ya sea en frontend o backend, sin importar el lenguaje de programación que utilices porque es la forma en la que vamos a guardar y a estructurar la información que son los datos

Ejemplo analogía

Consiste en la ropa que sale de la lavadora en las mejorar oportunidades esta te la van a entregar doblado para que tu la acomodes en su respectivo lugar, pero hay ocasiones en las que te la van a entregar así nada mas sin doblar si no “envuelta”.

Y si guardáramos la ropa así como nos la entregan seria de manera en que la guardemos como quepa o como se pueda y así lo dejamos.

Entonces si una persona ajena llega a buscar alguna de estas prendas se va a perder ya que debido al desorden no podrá hallar fácilmente lo que esta buscando.

Si la buscas tu puede que recuerdes donde la guardaste, no quiere decir esto que la forma de guardar ropa asi sea mala, simplemente no es la mejor estructura para completar algo que es buscar la ropa.

E aquí es donde buscamos mejores estructuras para poder encontrar esa ropa mas fácilmente

ESTRUCTURE OF DATES

Existen diferentes formas para guardar información, cada una de estas formas nos ayuda a resolver problemas específicos no todas son buenas para todo y nosotros ya conocemos algunas de ellas, pero también hay algunas que no están construidas pero podemos generarlas para hacer uso de ellas.

Las estructuras de datos son colecciones de valores, las relaciones entre ellos y las funciones u operaciones que se pueden aplicar a los datos.

👌

Podemos definir las estructuras de datos como maneras de organizar y almacenar datos para que operaciones puedan ejecutarse de manera eficiente. Esto nos lleva a preguntarnos:

¿Qué tipos de operaciones pueden utilizarse en las estructuras de datos?
Estas podrian ser: leer, insertar, eliminar, ordenar y encontrar los datos.

No todas las estructuras pueden ejecutar estas operaciones de manera eficiente y esto es lo que nos lleva a desarrollar y utilizar diferentes estructuras de datos.

Algunos cursos que pueden complementar el entendimiento de las estructuras de datos son:

  • Matemáticas Discretas (https://platzi.com/clases/discretas/) : Las princiaples estructuras como grafos y árboles vienen de aquí y te puede ayudar a entender mejor estas. (Además de otros temas super interesantes que verás en la universidad o que sería buenos que conocieras)

  • Algoritmos Práctico (https://platzi.com/clases/algoritmos/) : Verás otras estrucucturas vistas en este curso a profundidad (Como colas, pilas, grafos, árboles, etc). Claro no es con JavaScript pero por eso digo que puede complementar.

las estructuras de datos son formar de guardar información, para poder resolver problemas muy específicos con dichos datos
<h4>Son importantes!</h4>

Las estructuras de datos las usaremos mucho ya que son las que nos permitirán solucionar distintos problemas que nos encontremos como devs, es la forma en que podemos estructurar, almacenar y usar la data que tengamos.

<h4>No hay una Data Structure perfecta</h4>

Cada una cumple una funcion y resuelve un problema en particular, es nuestro deber y responsabilidad darles el mejor uso posible, y esto dependerá del problema que tengamos y como queramos abórdalo para solucionarlo. Esto lo podemos lograr entendiendo como funcionan cada estructura en su base conceptual.