Я начинаю использовать классы в Python, у нас есть домашнее задание, но нет шансов проверить, правильно ли мы это делаем.Как я могу впервые рассмотреть вопрос, имеет ли смысл то, что я делаю?И в конечном итоге помочь с завершением кода для некоторых функций?
Я добавлю свой код (для двусвязного списка классов мы должны заполнить код для всех функций, я сделал столько, сколько мог)
class DoublyLinkedList:
"""Implements a doubly linked list object"""
def __init__(self):
"""Create an empty doubly linked list"""
self.__size = 0
self.__header = Node('Header')
self.__trailer = Node('Trailer')
self.__header.set_next(self.__trailer)
self.__trailer.set_previous(self.__header)
self.__current = None
def __str__(self):
"""Return string representation of doubly linked list"""
list_as_str = \
'-'.join([str(node.get_data()) for node in self] if not self.is_empty() else '')
return 'H-' + list_as_str + '-T'
def __iter__(self):
"""Standard python iterator protocol method"""
self.__current = self.get_first()
return self
def __next__(self):
"""Standard python iterator protocol method"""
if self.__current == self.__trailer:
raise StopIteration()
result = self.__current
self.__current = self.__current.get_next()
return result
def get_previous(self, node):
"""Returns the node before the given node"""
if node is None:
return None
else:
newnode = node.get_previous()
return newnode
# YOUR CODE HERE
raise NotImplementedError()
def get_next(self, node):
"""Returns the node after the given node"""
if node is None:
return None
else:
newnode = node.get_next()
return newnode
# YOUR CODE HERE
raise NotImplementedError()
def get_size(self):
"""Return the number of elements in the list"""
size = self.__size
return size
# YOUR CODE HERE
raise NotImplementedError()
def get_first(self):
"""Get the first element of the list"""
if self.__header is None:
return None
else:
return self.__header
# YOUR CODE HERE
raise NotImplementedError()
def get_last(self):
"""Get the last element of the list"""
return self.__trailer
# YOUR CODE HERE
raise NotImplementedError()
def is_empty(self):
"""Returns T|F list is empty"""
# YOUR CODE HERE
if self.__size = 0:
return True
else:
return False
raise NotImplementedError()
def add_first(self, new_node):
"""Insert new node at the head of the list"""
if self.__header is None:
self.__header = Node(new_node)
else:
self.__current = Node(new_node)
self.__header.set_previous(self.__current)
self.__current.set_next(self.__header)
self.__current = self.__header
# YOUR CODE HERE
raise NotImplementedError()
def add_last(self, new_node):
"""Insert new node at the tail of the list"""
# YOUR CODE HERE
raise NotImplementedError()
def remove(self, node):
"""Remove the given node from the list, return node"""
# YOUR CODE HERE
raise NotImplementedError()
def search(self, key):
"""Return item by key, None if not found"""
fnd = None
# YOUR CODE HERE
raise NotImplementedError()
return fnd
def smallest(self):
"""Return node with smallest value"""
sml = Node(float("inf"))
# YOUR CODE HERE
raise NotImplementedError()
return sml
def traverse(self, visitor):
"""Visit every element in the list, call visitor"""
# YOUR CODE HERE
raise NotImplementedError()
Это правильный способ сделать это?