# Bloque 2 – Tema 3  
## Tipos abstractos y estructuras de datos. Organizaciones de ficheros. Algoritmos. Formatos de información y ficheros.

---

## Introducción

Este tema introduce los **conceptos fundamentales de programación y tratamiento de la información**, desde un punto de vista **teórico y abstracto**.  
En TAI **no se pregunta código**, sino **definiciones, clasificaciones y conceptos básicos**.

Es un tema típico de:
- Preguntas conceptuales.
- Confusiones terminológicas.
- Verdadero/Falso.

---

## 1. Tipos abstractos de datos (TAD)

### 1.1. Concepto de tipo abstracto de datos

Un **tipo abstracto de datos (TAD)** es una **definición lógica** de un conjunto de datos y de las **operaciones** que se pueden realizar sobre ellos, **sin especificar su implementación**.

> Idea clave de examen:  
> Un TAD define **qué hace**, no **cómo se hace**.

---

### 1.2. Características de los TAD

- Abstracción.
- Independencia de la implementación.
- Encapsulación de datos y operaciones.

Ejemplos de TAD:
- Pila.
- Cola.
- Lista.

#### Miniresumen
- TAD = datos + operaciones.
- No define la implementación.

---

## 2. Estructuras de datos

### 2.1. Concepto de estructura de datos

Una **estructura de datos** es la **forma concreta** de organizar y almacenar datos en memoria para facilitar su acceso y modificación.

> Diferencia clave:  
> TAD → concepto abstracto.  
> Estructura de datos → implementación concreta.

---

### 2.2. Clasificación de las estructuras de datos

Según su organización:

- **Lineales**
- **No lineales**

---

### 2.3. Estructuras de datos lineales

- **Arrays (vectores)**.
- **Listas**.
- **Pilas (LIFO)**.
- **Colas (FIFO)**.

| Estructura | Característica |
|----------|----------------|
| Pila | Último en entrar, primero en salir |
| Cola | Primero en entrar, primero en salir |

---

### 2.4. Estructuras de datos no lineales

- **Árboles**.
- **Grafos**.

#### Miniresumen
- Las estructuras organizan datos.
- Lineales y no lineales.
- Pila = LIFO, Cola = FIFO.

---

## 3. Organizaciones de ficheros

### 3.1. Concepto de fichero

Un **fichero** es un conjunto de **registros relacionados**, almacenados en un soporte, identificado por un nombre.

---

### 3.2. Tipos de organización de ficheros

Según el acceso:

- **Secuencial**.
- **Directo o aleatorio**.
- **Indexado**.

| Organización | Característica |
|------------|----------------|
| Secuencial | Acceso en orden |
| Directo | Acceso directo |
| Indexado | Usa índices |

---

### 3.3. Registros y campos

- **Campo**: unidad mínima de información.
- **Registro**: conjunto de campos relacionados.
- **Fichero**: conjunto de registros.

#### Miniresumen
- Fichero = registros.
- Registro = campos.
- Organización define el acceso.

---

## 4. Algoritmos

### 4.1. Concepto de algoritmo

Un **algoritmo** es un **conjunto finito y ordenado de instrucciones** que permite resolver un problema.

---

### 4.2. Características de los algoritmos

Un algoritmo debe ser:
- **Finito**.
- **Preciso**.
- **Definido**.

---

### 4.3. Representación de algoritmos

Formas habituales:
- Lenguaje natural.
- Pseudocódigo.
- Diagramas de flujo.

> En TAI **no se pide programar**, solo identificar conceptos.

#### Miniresumen
- Algoritmo = pasos ordenados.
- Debe ser finito y preciso.

---

## 5. Formatos de información y ficheros

### 5.1. Concepto de formato de fichero

Un **formato de fichero** define la **estructura y codificación** de los datos almacenados en un archivo.

---

### 5.2. Tipos de formatos

Según su naturaleza:

- **Formatos de texto**.
- **Formatos binarios**.

---

### 5.3. Formatos más habituales

Ejemplos:
- Texto: TXT, CSV, XML, JSON.
- Binarios: PDF, DOCX, XLSX, JPG.

> Clave de examen:  
> Texto → legible.  
> Binario → no legible directamente.

#### Miniresumen
- El formato define cómo se almacenan los datos.
- Texto y binario son la clasificación básica.

---

## Miniresumen final del tema

- TAD define datos y operaciones de forma abstracta.
- Las estructuras de datos son implementaciones concretas.
- Existen estructuras lineales y no lineales.
- Los ficheros organizan registros y campos.
- Un algoritmo es finito y ordenado.
- Los formatos definen la estructura de los archivos.
