Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class LinkedList():
- def __init__(self):
- self.start = None
- self.finish = None
- self.lenght = 0
- def __len__(self):
- return self.lenght
- def __str__(self):
- if self.lenght == 0:
- return 'Empty LinkedList'
- arr = ''
- temp = self.start
- for _ in range(self.lenght):
- arr += temp.data + '\n'
- if temp.next is None:
- return arr
- temp = temp.next
- def add_object_to_end(self, new_object):
- if self.start == None:
- self.start = new_object
- self.finish = new_object
- else:
- new_object.prev = self.finish
- self.finish.next = new_object
- self.finish = new_object
- self.lenght += 1
- def add_object_to_begin(self, new_object):
- if self.start == None:
- self.start = new_object
- self.finish = new_object
- else:
- new_object.next = self.start
- self.start.prev = new_object
- self.start = new_object
- self.lenght += 1
- def delete_object(self, object_data):
- obj = self.is_object(object_data)
- if self.lenght == 0:
- print('LinkedList is already empty')
- elif obj == self.finish:
- self.finish = obj.prev
- self.finish.next = None
- self.lenght -= 1
- print('Object was deleted')
- elif obj == self.start:
- self.start = obj.next
- self.start.prev = None
- self.lenght -= 1
- print('Object was deleted')
- elif obj:
- obj.prev.next = obj.next
- obj.next.prev = obj.prev
- self.lenght -= 1
- print('Object was deleted')
- elif not self.is_object(object_data):
- print('LinkedList has no that object')
- def is_object(self, object_data):
- if self.lenght == 0:
- return False
- temp = self.start
- for _ in range(self.lenght):
- if temp.data == object_data:
- return temp
- if temp.next is not None:
- temp = temp.next
- elif temp.next is None and temp.data == object_data:
- return temp
- return False
- class LinkedListObject:
- def __init__(self, data):
- self.prev = None
- self.next = None
- self.data = data
- obj1 = LinkedListObject('data1')
- obj2 = LinkedListObject('data2')
- obj5 = LinkedListObject('data5')
- obj6 = LinkedListObject('data6')
- obj7 = LinkedListObject('data7')
- l_list = LinkedList()
- l_list.add_object_to_end(obj1)
- l_list.add_object_to_end(obj2)
- l_list.add_object_to_end(obj5)
- l_list.add_object_to_begin(obj6)
- print(len(l_list))
- print(l_list)
- l_list.delete_object('data2')
- print(len(l_list))
- print(l_list)
- l_list.add_object_to_end(obj7)
- print(len(l_list))
- print(l_list)
Advertisement
Add Comment
Please, Sign In to add comment