Untitled

 avatar
unknown
plain_text
2 years ago
1.4 kB
4
Indexable
class Node:
    def __init__(self,info):
        self.__info = info
        self.__prox = None

    def __str__(self):
        return str(self.__info)

    def setProx(self,prox):
        self.__prox = prox

    def getProx(self):
        return self.__prox



from Node import Node

class Pilha:
    def __init__(self):
        self.__topo = None
        self.__tamanho = 0
    def estaVazia(self):
        return self.__tamanho == 0
    def empilha(self, info):
        novoNodo = Node(info)
        if not self.estaVazia():
            novoNodo.setProx(self.__topo)
        self.__topo =novoNodo
        self.__tamanho = self.__tamanho + 1

    def desempilha(self):
        if self.estaVazia():
            return None
        nodo = self.__topo
        self.__topo = nodo.getProx()
        self.__tamanho = self.__tamanho-1
        return nodo

    def topo(self):
        return self.__topo
    def tamanho(self):
        return self.__tamanho

    def __str__(self):
        if self.estaVazia():
            infos = "Pilha Vazia"
        else:
            infos = "TOPO->"
            nodo = self.__topo
            while nodo is not None:
                infos += str(nodo)
                nodo = nodo.getProx()
                if nodo is not None:
                    infos +="->"
        return infos


Editor is loading...