class Stack(object):
    def __init__(self):
        self.__list = LinkList()

    def push(self, item):
        self.__list.push(Node(item))

    def pop(self):
        return self.__list.pop().item_value

    def peek(self):  # add exercise 1.3.7
        return self.__list[0].item_value

    def is_empty(self):
        return len(self.__list) == 0

    def size(self):
        return len(self.__list)

    def __iter__(self):
        self.__data_list.__iter__()
        return self

    def __next__(self):
        return self.__data_list.__next__()
Beispiel #2
0
class Deque(object):
    def __init__(self):
        self.__link_list = LinkList()

    def is_empty(self):
        return len(self.__link_list) == 0

    def size(self):
        return len(self.__link_list)

    def push_left(self, item):
        self.__link_list.push(Node(item))

    def push_right(self, item):
        self.__link_list.append(Node(item))

    def pop_left(self):
        return self.__link_list.pop().item_value

    def pop_right(self):
        result = self.__link_list[self.size() - 1]
        self.__link_list.remove(self.size() - 1)
        return result.item_value