Introducció
Les estructures de dades són una part fonamental de la informàtica i la programació. Són maneres d'organitzar i emmagatzemar dades de manera que puguin ser utilitzades de manera eficient. Aquest tema introdueix els conceptes bàsics de les estructures de dades, la seva importància i els tipus més comuns.
Definició
Una estructura de dades és una col·lecció de valors de dades, les relacions entre ells i les funcions o operacions que es poden aplicar a les dades. Les estructures de dades permeten als programadors gestionar grans quantitats d'informació de manera eficient i efectiva.
Conceptes Clau
- Dades: Informació que es pot processar per un ordinador.
- Estructura: La manera en què les dades estan organitzades i emmagatzemades.
- Operacions: Accions que es poden realitzar sobre les dades, com ara inserir, eliminar, cercar i ordenar.
Importància de les Estructures de Dades
Les estructures de dades són crucials per diverses raons:
- Eficiència: Permeten l'accés i la modificació ràpida de les dades.
- Organització: Faciliten la gestió i l'organització de grans volums d'informació.
- Optimització: Milloren el rendiment dels algoritmes en termes de temps i espai.
- Reutilització: Proporcionen solucions reutilitzables per a problemes comuns de gestió de dades.
Tipus d'Estructures de Dades
Les estructures de dades es poden classificar en dues categories principals:
-
Estructures de Dades Lineals: Les dades es disposen en una seqüència lineal.
- Llistes: Col·leccions ordenades d'elements.
- Piles: Col·leccions d'elements amb accés LIFO (Last In, First Out).
- Cues: Col·leccions d'elements amb accés FIFO (First In, First Out).
-
Estructures de Dades No Lineals: Les dades es disposen de manera jeràrquica o en grafs.
- Arbres: Estructures jeràrquiques amb nodes i arrels.
- Grafs: Col·leccions de nodes connectats per arestes.
Exemples d'Estructures de Dades
Llistes
Piles
# Exemple de pila en Python utilitzant una llista pila = [] pila.append(1) pila.append(2) pila.append(3) print(pila.pop()) # Output: 3
Cues
# Exemple de cua en Python utilitzant collections.deque from collections import deque cua = deque() cua.append(1) cua.append(2) cua.append(3) print(cua.popleft()) # Output: 1
Arbres
# Exemple bàsic d'un node d'arbre en Python class Node: def __init__(self, valor): self.valor = valor self.esquerra = None self.dreta = None arrel = Node(1) arrel.esquerra = Node(2) arrel.dreta = Node(3)
Grafs
# Exemple bàsic de graf en Python utilitzant un diccionari graf = { 'A': ['B', 'C'], 'B': ['A', 'D', 'E'], 'C': ['A', 'F'], 'D': ['B'], 'E': ['B', 'F'], 'F': ['C', 'E'] }
Exercici Pràctic
Exercici 1: Crear una Llista
Crea una llista en Python que contingui els números de l'1 al 10 i imprimeix-la.
Exercici 2: Implementar una Pila
Implementa una pila en Python utilitzant una llista i realitza les operacions d'afegir (push) i eliminar (pop).
# Solució pila = [] pila.append(1) pila.append(2) pila.append(3) print(pila.pop()) # Output: 3 print(pila) # Output: [1, 2]
Conclusió
Les estructures de dades són fonamentals per a la programació eficient i efectiva. Comprendre les diferents estructures de dades i les seves aplicacions és essencial per a qualsevol programador. En els següents mòduls, explorarem cada tipus d'estructura de dades en detall, incloent-hi les seves operacions, implementacions i aplicacions pràctiques.
Curs d'Estructures de Dades
Mòdul 1: Introducció a les Estructures de Dades
- Què són les Estructures de Dades?
- Importància de les Estructures de Dades en la Programació
- Tipus d'Estructures de Dades
Mòdul 2: Llistes
- Introducció a les Llistes
- Llistes Enllaçades
- Llistes Doblement Enllaçades
- Llistes Circulars
- Exercicis amb Llistes
Mòdul 3: Piles
- Introducció a les Piles
- Operacions Bàsiques amb Piles
- Implementació de Piles
- Aplicacions de les Piles
- Exercicis amb Piles
Mòdul 4: Cues
- Introducció a les Cues
- Operacions Bàsiques amb Cues
- Cues Circulars
- Cues de Prioritat
- Exercicis amb Cues
Mòdul 5: Arbres
- Introducció als Arbres
- Arbres Binàries
- Arbres Binàries de Cerca
- Arbres AVL
- Arbres B
- Exercicis amb Arbres
Mòdul 6: Grafs
- Introducció als Grafs
- Representació de Grafs
- Algoritmes de Cerca en Grafs
- Algoritmes de Camins Mínims
- Aplicacions dels Grafs
- Exercicis amb Grafs