栈的链表方式实现–python


class SizeExcetion(Exception):

    def __init__(self):
        super(SizeExcetion, self).__init__()

    def __str__(self):
        print("Stack is empty")


class Node:

    def __init__(self, item):
        self.item = item
        self.next = None

    @property
    def p_item(self):
        return self.item

    @p_item.setter
    def p_item(self, item):
        self.item = item

    @property
    def p_next(self):
        return self.next

    @p_next.setter
    def p_next(self, next):
        self.next = next

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


class Stack:

    def __init__(self):
        self.count = 0
        self._stk = None
        super(Stack, self).__init__()

    def push(self, node: Node):
        self.count += 1
        if self._stk is None:
            self._stk = node
        else:
            node.next = self._stk
            self._stk = node

    def pop(self):
        if self.count > 0:
            self.count -= 1
        else:
            raise SizeExcetion
        self._stk = self._stk.next

    @property
    def stack(self):
        return self._stk


if __name__ == '__main__':

    stack = Stack()
    node = Node("第一个node")
    node1 = Node("第二个node")
    stack.push(node)
    stack.push(node1)
    stack.pop()
    stack.pop()

    print(stack.stack)





Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐