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 llistaelementsque 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 llistaelementssi 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: 20Explicació
peek: Retorna l'últim element de la llistaelementssense 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: FalseExplicació
is_empty: RetornaTruesi la llistaelementsestà 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: 2Explicació
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
