示例#1
0
class Stack():
    def __init__(self, node=None):
        self._list = DLL()

        if node != None:
            self.push(node)

    def size(self):
        return self._list.size()

    def isEmpty(self):
        return self.size() == 0

    def push(self, node):
        self._list.addLast(node)

    def pop(self):
        if self.isEmpty():
            raise Exception('stack is empty')
        return self._list.removeLast()

    def peek(self):
        if self.isEmpty():
            raise Exception('stack is empty')
        return self._list.peekLast()
示例#2
0
class Queue():
    def __init__(self, node=None):
        self._list = DLL()
        if node != None:
            self.enqueue(node)

    def size(self):
        return self._list.size()

    def isEmpty(self):
        return self._list.size() == 0

    def peek(self):
        if self.isEmpty():
            raise Exception('queue is empty')
        return self._list.peekFirst()

    def enqueue(self, node):
        self._list.addLast(node)

    def dequeue(self):
        if self.isEmpty():
            raise Exception('queue is empty')
        return self._list.removeFirst()