En aquest tema, explorarem els diferents tipus d'estructures de dades que són fonamentals per a la programació. Les estructures de dades es poden classificar de diverses maneres, però en aquest curs ens centrarem en les següents categories principals:
- Estructures de Dades Lineals
- Estructures de Dades No Lineals
- Estructures de Dades Dinàmiques
- Estructures de Dades Estàtiques
- Estructures de Dades Lineals
Les estructures de dades lineals són aquelles en què els elements es disposen en una seqüència lineal. Cada element té un predecessor i un successor, excepte el primer i l'últim element. Les estructures de dades lineals més comunes són:
1.1. Llistes
- Llistes Enllaçades: Una col·lecció d'elements on cada element apunta al següent. Pot ser simple, doble o circular.
- Llistes Doblement Enllaçades: Cada element apunta tant al següent com al precedent.
- Llistes Circulars: L'últim element apunta al primer, formant un cercle.
1.2. Piles (Stacks)
- Definició: Una estructura de dades que segueix el principi LIFO (Last In, First Out).
- Operacions:
push
(afegir un element),pop
(treure un element),peek
(consultar l'element superior).
1.3. Cues (Queues)
- Definició: Una estructura de dades que segueix el principi FIFO (First In, First Out).
- Operacions:
enqueue
(afegir un element),dequeue
(treure un element),front
(consultar el primer element).
- Estructures de Dades No Lineals
Les estructures de dades no lineals són aquelles en què els elements no es disposen en una seqüència lineal. Els elements poden tenir múltiples predecessors i successors. Les estructures de dades no lineals més comunes són:
2.1. Arbres (Trees)
- Arbres Binàries: Cada node té com a màxim dos fills.
- Arbres Binàries de Cerca: Un arbre binari on els nodes es disposen de manera que el fill esquerre és menor que el node pare i el fill dret és major.
- Arbres AVL: Un tipus d'arbre binari de cerca que es manté equilibrat.
- Arbres B: Un arbre autoequilibrat que manté les dades ordenades i permet insercions, supressions i cerques en temps logarítmic.
2.2. Grafs (Graphs)
- Definició: Una col·lecció de nodes (o vèrtexs) i arestes que connecten parelles de nodes.
- Tipus: Grafs dirigits i no dirigits, grafs ponderats i no ponderats.
- Estructures de Dades Dinàmiques
Les estructures de dades dinàmiques poden canviar de mida durant l'execució del programa. Aquestes estructures són útils quan no es coneix la mida de les dades per endavant.
3.1. Llistes Enllaçades
- Avantatges: Facilitat per afegir i eliminar elements.
- Desavantatges: Accés més lent als elements comparat amb les estructures de dades estàtiques.
3.2. Piles i Cues Dinàmiques
- Implementació: Sovint implementades utilitzant llistes enllaçades per permetre una mida dinàmica.
- Estructures de Dades Estàtiques
Les estructures de dades estàtiques tenen una mida fixa que es defineix en el moment de la seva creació. Aquestes estructures són útils quan la mida de les dades és coneguda i constant.
4.1. Arrays (Matrius)
- Definició: Una col·lecció d'elements del mateix tipus, emmagatzemats en ubicacions de memòria contigües.
- Avantatges: Accés ràpid als elements mitjançant un índex.
- Desavantatges: Mida fixa, difícil d'afegir o eliminar elements.
4.2. Matrius Bidimensionals
- Definició: Una matriu d'elements on cada element és una altra matriu.
- Aplicacions: Utilitzades per representar taules, graelles, i altres estructures de dades tabulars.
Resum
En aquesta secció, hem explorat els diferents tipus d'estructures de dades, incloent-hi les estructures de dades lineals, no lineals, dinàmiques i estàtiques. Cada tipus té les seves pròpies característiques, avantatges i desavantatges, i la seva elecció depèn dels requisits específics de l'aplicació.
En el següent mòdul, ens endinsarem en les llistes, començant per una introducció a les llistes i les seves variants.
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