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:

  1. Push: Inserir un element a la pila.
  2. Pop: Treure l'element del cim de la pila.
  3. Peek/Top: Consultar l'element del cim sense treure'l.
  4. isEmpty: Comprovar si la pila està buida.
  5. Size: Obtenir el nombre d'elements a la pila.

  1. 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 llista elements que representa la pila.

  1. 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 llista elements si la pila no està buida.
  • is_empty: Comprova si la pila està buida.

  1. 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 llista elements sense eliminar-lo.

  1. 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: Retorna True si la llista elements està buida, en cas contrari retorna False.

  1. 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 llista elements.

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.

© Copyright 2024. Tots els drets reservats