Top.Mail.Ru
Ответы

Как выполнить это задание?

Задание 2.1.14
В заключение вам предстоит реализовать двусвязный список, хранящий значения типа int. Требуется поддержать операции get, set, pushFront (вставка в начало листа), pushBack (вставка в конец), popFront (удаление с начала), popBack (удаление с конца), front (элемент в начале), back (элемент в конце).

Для решения задания воспользуйтесь формами ниже (первая — для C++, вторая — для Java, третья — для Python).
для выполнения задания используется https://codeboard.io

По дате
По Рейтингу
Аватар пользователя
Ученик
1мес

Вот пример реализации двусвязного списка на Python, который включает все необходимые операции: class Node:
def __init__(self, value):
self.value = value
self.prev = None
self.next = None

class DoublyLinkedList:
def __init__(self):
self.head = None
self.tail = None

def pushFront(self, value):
new_node = Node(value)
if not self.head:
self.head = self.tail = new_node
else:
new_ node.next = self.head
self.head.prev = new_node
self.head = new_node

def pushBack(self, value):
new_node = Node(value)
if not self.tail:
self.head = self.tail = new_node
else:
new_node.prev = self.tail
self.tail.next = new_node
self.tail = new_node

def popFront(self):
if not self.head:
return None
value = self.head.value
if self.head == self.tail:
self.head = self.tail = None
else:
self.head = self.head.next
self.head.prev = None
return value

def popBack(self):
if not self.tail:
return None
value = self.tail.value
if self.head == self.tail:
self.head = self.tail = None
else:
self.tail = self.tail.prev
self.tail.next = None
return value

def front(self):
return self.head.value if self.head else None

def back(self):
return self.tail.value if self.tail else None

def get(self, index):
current = self.head
for _ in range(index):
if current is None:
return None
current = current.next
return current.value if current else None

def set(self, index, value):
current = self.head
for _ in range(index):
if current is None:
return False
current = current.next
if current:
current.value = value
return True
return False