En programación, unha **estrutura de datos** é unha forma particular de organizar datos nun ordenador para que poidan ser utilizados de maneira eficiente. Pode dicirse que a programción é o tratamento con algoritmos dos datos estruturados.

Diferentes tipos de estruturas de datos son axeitadas para diferentes usos, e algunhas son altamente especializadas para tarefas específicas. Polo xeral, as estruturas de datos especializadas son chave para deseñar algoritmos eficientes. Algúns métodos formais de deseño de linguaxes de programación destacan as estruturas de datos, polo menos á par dos algoritmos, como o factor chave de organización no deseño de software.

Descrición
----------

As estruturas de datos baséanse xeralmente na capacidade dun ordenador para recuperar e almacenar datos en calquera lugar da súa memoria.

Estruturas de datos en programación
-----------------------------------

En programación, unha estrutura de datos pode ser declarada inicialmente escribindo unha palabra reservada, logo un identificador para a estrutura e un nome para cada un dos seus membros ou campos, sen esquecer os tipos de datos que se lles asocian. Xeralmente, cada membro ou campo vai separado por algún tipo de operador, carácter ou palabra reservada.

Na linguaxe de programación Pascal é posible crear unha estrutura de datos da forma mencionada. A sintaxe básica é:

```
Estruc Identificador, _
             Membro1:TipoDeDato, _
             Membro2:TipoDeDato, _
             ...
             Membro9:TipoDeDato
```

Para acceder aos membros dunha estrutura primeiro débese crear unha referencia a esta, xeralmente cunha variable de tipo, logo pódense editar e obter os datos dos membros libremente:

```
Estruc Estrutura,Membro1:Enteiro,Membro2:Cadea,Membro3:Byte
Var Variable:Estrutura
Variable.Membro1 = 40000
Variable.Membro2 = "Ola Mundo"
Variable.Membro3 = 255
Mesaxe(Variable.Membro2) ' Mostra "Ola Mundo"
```

Principais estruturas de datos en programación
----------------------------------------------

### Vector ou *array*

Concentra elementos dando lugar a unha estrutura ordenada e relacionada.

### Lista

Unha lista enlazada é unha das estruturas de datos fundamentais, e pode ser usada para construír outras estruturas de datos. Consiste nunha secuencia de nodos, nos que se gardan campos de datos arbitrarios e unha ou dúas referencias, enlaces ou punteiros ao nodo anterior ou posterior. O principal beneficio das listas enlazadas respecto aos vectores convencionais é que a orde dos elementos enlazados pode ser diferente á orde de almacenamento na memoria ou o disco, permitindo que a orde do percorrido da lista sexa diferente ao de almacenamento.

### Cola

Unha cola é unha lista ordenada ou estrutura de datos na que o modo de acceso aos seus elementos é de tipo FIFO (do inglés *First In First Out*, primeiro en entrar, primeiro en saír) que permite almacenar e recuperar datos.

### Pila

Unha pila é unha lista ordenada ou estrutura de datos na que o modo de acceso aos seus elementos é de tipo LIFO (do inglés *Last In First Out*, último en entrar, primeiro en saír) que permite almacenar e recuperar datos.

### Árbore

Unha árbore é unha estrutura de datos que imita a forma dunha árbore (un conxunto de nodos conectados). Un nodo é a unidade sobre a que se constrúe a árbore e pode ter cero ou máis nodos fillos conectados a el. Dise que un nodo A é pai dun nodo B se existe un enlace dende A ata B (nese caso, tamén dicimos que B é fillo de A). Só pode haber un único nodo sen pais, que se denomina comunmente nodo raíz. Un nodo que non ten fillos coñécese como nodo folla. Os demais nodos (que teñen pai e un ou varios fillos) coñéceselles como nodos rama.

|  |  |
| --- | --- |
|  | Wikimedia Commons ten máis contidos multimedia na categoría:  ***Estrutura de datos***  |

Notas
-----

1. 1 2  Introdución ó tratamento de datos:  Arquivado 24 de outubro de 2018 en Wayback Machine.
2. ↑  "Estructura de datos definición y tipos principales VIU". *www.universidadviu.com/es*. Consultado o 2019-01-29.

|  |  |
| --- | --- |
| Control de autoridades | 
* Wd: Q175263
* BNCF: 63819
* BNF: 119313298
* EBID: ID
* GEC: 0250947
* GND: 4011146-5
* LCCN: sh85035862
* MAG: 162319229
* NDL: 01167757

 |