¿No sabes por dónde empezar? Ayúdanos normalizando artículos.
¿Tienes experiencia? Crea alguno de estos artículos de actualidad.

Diferencia entre revisiones de «Estructura de datos»

(Etiqueta: revisar proyecto)
 
(No se muestran 2 ediciones intermedias de 2 usuarios)
Línea 1: Línea 1:
 
{{Definición
 
{{Definición
 
|nombre= Estructura de datos  
 
|nombre= Estructura de datos  
|imagen=Estructura_datostexto.jpg‎  
+
|imagen= Estructura_datos.jpg‎
 
|tamaño=
 
|tamaño=
 
|concepto= El modelo matemático o lógico de una organización particular de datos recibe el nombre de ''estructura de datos''.
 
|concepto= El modelo matemático o lógico de una organización particular de datos recibe el nombre de ''estructura de datos''.
}}<div  align="justify">'''Estructura de datos''', pueden organizarse en muchas formas diferentes; el modelo matemático o lógico de una organización particular de datos recibe el nombre de ''estructura de datos''.
+
}}<div  align="justify">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.  Diferentes tipos de estructuras de datos son adecuados para diferentes tipos de aplicaciones, y algunos son altamente especializados para tareas específicas.
La elección de un modelo de datos depende de dos cuestiones. Primero, debe ser lo suficientemente complejo para mostrarnos la relación entre los datos y lo que representan. Por el contrario, la estructura debe ser lo suficiente mente simple para que los datos puedan ser procesados de forma eficiente cuando sean necesario.  
+
Las estructuras de datos son un medio para manejar grandes cantidades de datos de manera eficiente para usos tales como grandes bases de datos y servicios de indización de [[Internet]]. Por lo general, las estructuras de datos eficientes son clave para diseñar algoritmos eficientes. Algunos métodos formales de diseño y lenguajes de programación destacan las estructuras de datos, en lugar de los algoritmos, como el factor clave de organización en el diseño de software.
 +
  
 
==Clasificación==
 
==Clasificación==
 
Las Estructuras de datos pueden clasificarse en lineales y no lineales.
 
Las Estructuras de datos pueden clasificarse en lineales y no lineales.
Una Estructura de datos es lineal si sus elementos forman una secuencia o, en otras palabras una lista lineal.
+
 
 +
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.
 +
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.
  
 
==Tipos de estructuras de datos==
 
==Tipos de estructuras de datos==
 +
Pueden ser dinámicas y estáticas. 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.
 +
 +
===Arreglos===
 +
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.
 +
[[Archivo:Arreglos.jpg|centro|400px|Ejemplo de arreglo.]]
 +
  
===Arrays===
+
===Listas enlazadas===
La [[estructura de datos]] más simple es el array lineal (o unidimensional). Un [[array lineal]] es una lista de números finitos de datos similares, referenciados por medio de un conjunto de n números consecutivos, normalmente 1,2,3, …, ''n''.
+
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.
 +
[[Archivo:Listaenlazada.png|centro|400px|Ejemplo de lista enlazada.]]
  
 
===Pila===
 
===Pila===
Una pila, también denominada sistema último-dentro primero-fuera (LIFO), es una lista lineal en la cual las inserciones y extracciones tienen lugar sólo por un extremo llamado cúspide.
+
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.
 +
[[Archivo:PILAS.png|centro|400px|Ejemplo de Pila.]]
 +
 
  
 
===Cola===
 
===Cola===
Una cola, también denominada sistema primero-dentro primero-fuera (FIFO), es una lista lineal en la cual las extracciones se realizan siempre por un extremo llamado frente y las inserciones por el extremo contrario llamado final de la lista.  
+
Una cola (también llamada fila) es un tipo de dato abstracto, caracterizada por ser una secuencia de elementos en la que la operación de inserción push se realiza por un extremo y la operación de extracción pull por el otro. También se le llama estructura FIFO (del inglés First In First Out), debido a que el primer elemento en entrar será también el primero en salir.
 +
[[Archivo:Cola.png|centro|400px|Ejemplo de cola.]]
 +
 
 +
 
 +
===Á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 [[árbol binario]], 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.
 +
[[Archivo:ARBOL.png|centro|400px|Ejemplo de Árbol.]]
  
 
===Grafos===
 
===Grafos===
Los datos contienen, en algunos casos, relaciones entre ellos que no es necesariamente jerárquica. Por ejemplo, supongamos que unas líneas aéreas realizan vuelos sólo entre ciudades conectadas por líneas. La estructura de datos que refleja esta relación recibe el nombre de grafo.  
+
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. 
 +
[[Archivo:GRAFOS.png|centro|400px|Ejemplo de Grafo.]]
 +
 
  
 
==Operaciones con estructuras de datos==
 
==Operaciones con estructuras de datos==
Línea 39: Línea 60:
  
 
===Ordenación===
 
===Ordenación===
Es la operación de clasificar los registros conforme a un orden lógico determinado (por ejemplo, alfabéticamente, de acuerdo a una clave de nombre, o numérica, de acuerdo a alguna clave de número, tal como número de [[seguridad social]] o de inventario).
+
Es la operación de clasificar los registros conforme a un orden lógico determinado (por ejemplo, alfabéticamente, de acuerdo a una clave de nombre, o numérica, de acuerdo a alguna clave de número, tal como número de [[Seguridad Social]] o de inventario).
  
 
===Mezcla===
 
===Mezcla===
Línea 46: Línea 67:
 
==Fuente==
 
==Fuente==
 
* Seymour Lipschutz, Ph.D.Estructura de datos.Editorial Revolucionaria.[[2002]]
 
* Seymour Lipschutz, Ph.D.Estructura de datos.Editorial Revolucionaria.[[2002]]
 +
*[https://blog.soyhenry.com/que-es-una-estructura-de-datos-en-programacion/#:~:text=Las%20estructuras%20de%20datos%20en,en%20que%20est%C3%A1%20construida%20internamente.] ¿Qué es una estructura de datos en programación y para qué se utiliza?
  
 
[[Category:Programación]]
 
[[Category:Programación]]

última versión al 10:59 13 sep 2022

Estructura de datos
Información sobre la plantilla
Estructura datos.jpg
Concepto:El modelo matemático o lógico de una organización particular de datos recibe el nombre de estructura de 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. Diferentes tipos de estructuras de datos son adecuados para diferentes tipos de aplicaciones, y algunos son altamente especializados para tareas específicas.

Las estructuras de datos son un medio para manejar grandes cantidades de datos de manera eficiente para usos tales como grandes bases de datos y servicios de indización de Internet. Por lo general, las estructuras de datos eficientes son clave para diseñar algoritmos eficientes. Algunos métodos formales de diseño y lenguajes de programación destacan las estructuras de datos, en lugar de los algoritmos, como el factor clave de organización en el diseño de software.


Clasificación

Las Estructuras de datos pueden clasificarse en lineales y no 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. 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.

Tipos de estructuras de datos

Pueden ser dinámicas y estáticas. 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.

Arreglos

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.

Ejemplo de arreglo.


Listas enlazadas

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.

Ejemplo de lista 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.

Ejemplo de Pila.


Cola

Una cola (también llamada fila) es un tipo de dato abstracto, caracterizada por ser una secuencia de elementos en la que la operación de inserción push se realiza por un extremo y la operación de extracción pull por el otro. También se le llama estructura FIFO (del inglés First In First Out), debido a que el primer elemento en entrar será también el primero en salir.

Ejemplo de cola.


Á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 árbol binario, 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.

Ejemplo de Árbol.

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.

Ejemplo de Grafo.


Operaciones con estructuras de datos

Recorrido

Implica el acceder a cada registro una única vez aunque uno o más ítems del registro sean procesados. (Este acceso o procesamiento también se denomina a veces por el término «visitar» el registro).

Búsqueda

Implica la localización de un registro caracterizado por una determinada clave o también el acceso a todos los registros que cumplan una o más condiciones.

Inserción

Cuando añadimos nuevos registros a la estructura.

Eliminación

Operación de borrado de un registro de la estructura.

Ordenación

Es la operación de clasificar los registros conforme a un orden lógico determinado (por ejemplo, alfabéticamente, de acuerdo a una clave de nombre, o numérica, de acuerdo a alguna clave de número, tal como número de Seguridad Social o de inventario).

Mezcla

Es la operación de combinar dos archivos previamente ordenados en uno único que también lo está.

Fuente

  • Seymour Lipschutz, Ph.D.Estructura de datos.Editorial Revolucionaria.2002
  • [1] ¿Qué es una estructura de datos en programación y para qué se utiliza?