예제 #1
0
class Queue:
    def __init__(self):
        self.size = 0
        self.storage = LinkedList()

    def __len__(self):
        return self.size

    def enqueue(self, value):
        self.storage.add_as_head(value)
        self.size += 1

    def dequeue(self):
        if self.size > 0:
            self.size -= 1
        removed = self.storage.remove_tail()
        return removed


# **** ARRAY IMPLEMENTATION ****
# class Queue:
#     def __init__(self):
#         self.size = 0
#         self.storage = []

#     def __len__(self):
#         return len(self.storage)

#     def enqueue(self, value):
#         self.storage.insert(0, value)
#         self.size += 1

#     def dequeue(self):
#         if len(self.storage) > 0:
#             self.size -= 1
#             return self.storage.pop()
#         return None
예제 #2
0
class Stack:
    def __init__(self):
        self.size = 0
        self.storage = LinkedList()

    def __len__(self):
        return self.size

    def push(self, value):
        self.storage.add_as_head(value)
        self.size += 1

    def pop(self):
        if self.size > 0:
            self.size -= 1
        return self.storage.remove_head()

# **** ARRAY IMPLEMENTATION ****
# class Stack:
#     def __init__(self):
#         self.size = 0
#         self.storage = []

#     def __len__(self):
#         return self.size

#     def push(self, value):
#         self.size +=1
#         self.storage.insert(0, value)

#     def pop(self):
#         if len(self.storage) > 0:
#             value = self.storage[0]
#             self.storage.pop(0)
#             self.size -=1
#             return value
#         return None