En aquest tema, explorarem les operacions bàsiques que es poden realitzar amb les piles. Les piles són estructures de dades fonamentals que segueixen el principi LIFO (Last In, First Out), és a dir, l'últim element que entra és el primer que surt. Les operacions bàsiques amb piles inclouen:
- Push: Inserir un element a la pila.
- Pop: Treure l'element del cim de la pila.
- Peek/Top: Consultar l'element del cim sense treure'l.
- isEmpty: Comprovar si la pila està buida.
- Size: Obtenir el nombre d'elements a la pila.
- Operació Push
L'operació push
afegeix un element al cim de la pila.
Exemple en Python
class Pila: def __init__(self): self.elements = [] def push(self, element): self.elements.append(element) print(f"Element {element} afegit a la pila.") # Exemple d'ús pila = Pila() pila.push(10) pila.push(20)
Explicació
__init__
: Inicialitza una nova pila buida.push
: Afegeix un element a la llistaelements
que representa la pila.
- Operació Pop
L'operació pop
elimina i retorna l'element del cim de la pila.
Exemple en Python
class Pila: def __init__(self): self.elements = [] def push(self, element): self.elements.append(element) def pop(self): if not self.is_empty(): return self.elements.pop() else: return "La pila està buida." def is_empty(self): return len(self.elements) == 0 # Exemple d'ús pila = Pila() pila.push(10) pila.push(20) print(pila.pop()) # Sortida: 20 print(pila.pop()) # Sortida: 10 print(pila.pop()) # Sortida: La pila està buida.
Explicació
pop
: Treu l'últim element de la llistaelements
si la pila no està buida.is_empty
: Comprova si la pila està buida.
- Operació Peek/Top
L'operació peek
o top
retorna l'element del cim de la pila sense eliminar-lo.
Exemple en Python
class Pila: def __init__(self): self.elements = [] def push(self, element): self.elements.append(element) def pop(self): if not self.is_empty(): return self.elements.pop() else: return "La pila està buida." def peek(self): if not self.is_empty(): return self.elements[-1] else: return "La pila està buida." def is_empty(self): return len(self.elements) == 0 # Exemple d'ús pila = Pila() pila.push(10) pila.push(20) print(pila.peek()) # Sortida: 20
Explicació
peek
: Retorna l'últim element de la llistaelements
sense eliminar-lo.
- Operació isEmpty
L'operació isEmpty
comprova si la pila està buida.
Exemple en Python
class Pila: def __init__(self): self.elements = [] def is_empty(self): return len(self.elements) == 0 # Exemple d'ús pila = Pila() print(pila.is_empty()) # Sortida: True pila.push(10) print(pila.is_empty()) # Sortida: False
Explicació
is_empty
: RetornaTrue
si la llistaelements
està buida, en cas contrari retornaFalse
.
- Operació Size
L'operació size
retorna el nombre d'elements a la pila.
Exemple en Python
class Pila: def __init__(self): self.elements = [] def size(self): return len(self.elements) # Exemple d'ús pila = Pila() print(pila.size()) # Sortida: 0 pila.push(10) pila.push(20) print(pila.size()) # Sortida: 2
Explicació
size
: Retorna la longitud de la llistaelements
.
Resum
En aquest tema hem après les operacions bàsiques amb piles:
- Push: Inserir un element al cim de la pila.
- Pop: Treure l'element del cim de la pila.
- Peek/Top: Consultar l'element del cim sense treure'l.
- isEmpty: Comprovar si la pila està buida.
- Size: Obtenir el nombre d'elements a la pila.
Aquestes operacions són fonamentals per treballar amb piles i són àmpliament utilitzades en diversos algorismes i aplicacions. En el següent tema, veurem com implementar una pila des de zero.
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