
Добавил:
linnesse
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Код лаб / LinkedList
.pyclass LinkedList():
def __init__(self):
self.head = None
class Node:
def __init__(self, data):
self.data = data
self.next = None
def size(self):
if self.head is None:
return 0
else:
node = self.head
count = 1
while node.next:
count += 1
node = node.next
return count
def isEmpty(self):
if self.head:
return True
else:
return False
def add(self, data):
if self.head is None:
self.head = self.Node(data)
else:
node = self.head
while node.next:
node = node.next
node.next = self.Node(data)
def list_out(self):
if self.head is None:
print(None)
else:
node = self.head
print(self.head)
while node.next:
print(node.data)
node = node.next
print(node.data)
def set(self, index, element):
if index not in (0, self.size()):
print("Index out of range")
return
node = self.head
for i in range(0, index):
node = node.next
node.data = element
def get(self, index):
if index not in (0, self.size()):
print("Index is out of range")
return
node = self.head
i = 0
while i < index:
node = node.next
i += 1
return node.data
def contains(self, element):
node = self.head
size = self.size()
index = 0
if node is None:
return -1
else:
while index < size:
if node.data == element:
return True
index += 1
node = node.next
return -1
def indexOf(self, element):
node = self.head
size = self.size()
index = 0
if node is None:
return -1
else:
while index < size:
if node.data == element:
return index
index += 1
node = node.next
return -1
def remove_index(self, index):
if self.head is None:
print("List is empty")
return
if index == 0:
self.head = self.head.next
else:
node = self.head
i = 0
prev_node = node
while i < index:
prev_node = node
node = node.next
i+=1
prev_node.next = node.next
del node
def remove_element(self, element):
if self.head is None:
print("List is empty")
return
index = self.indexOf(element)
if index == 0:
self.head = self.head.next
else:
node = self.head
i = 0
prev_node = node
while i < index:
prev_node = node
node = node.next
i+=1
prev_node.next = node.next
del node
def clear(self):
self.head = None
Соседние файлы в папке Код лаб