class Queue: def __init__(self): self.__list = DoubleLinkedList() def enque(self, value): self.__list.add(value) def deque(self): val = self.__list.pop_front() return val def front(self): return self.__list.front() def __len__(self): return self.__list.size def size(self): return self.__list.size def is_empty(self): return self.__list.size == 0
class Stack: def __init__(self): self.__list = DoubleLinkedList() def push(self, value): self.__list.add(value) def pop(self): val = self.__list.pop_back() return val def is_empty(self): return self.__list.size == 0 def peek(self): return self.__list.back() def size(self): return self.__list.size def __len__(self): return self.__list.size
def chain(self, key, val, position): dl = DoubleLinkedList() dl.head = Node([self.key_store[position], self.hash_table[position]]) dl.add([key, val], len(dl.linked_gen()) + 1) self.hash_table[position] = dl