Practice
shinta0x01
python
2 years ago
2.3 kB
15
Indexable
class Node:
def __init__(self, data):
self.data = data
self.next = None
class Singly:
def __init__(self):
self.head = None
def insert_beginning(self, data):
new_node = Node(data)
if self.head is None:
self.head = new_node
return
else:
new_node.next = self.head
self.head = new_node
def insert_end(self, data):
new_node = Node(data)
current = self.head
if self.head is None:
self.head = new_node
else:
while current.next is not None:
current = current.next
current.next = new_node
def insert_before(self, key, data):
new_node = Node(data)
current = self.head
if current.data == key:
self.head = new_node
new_node.next = current
return
while current.data != key:
pre_current = current
current = current.next
if current.data != key:
print(key, 'Key not found')
return
pre_current.next = new_node
new_node.next = current
def insert_after(self, key, data):
new_node = Node(data)
if self.head is None:
self.head = new_node
return
else:
current = self.head
while current.data != key:
post_current = current.next
current = post_current
if current.data != key:
print('Key not found')
return
post_current = current.next
current.next = new_node
new_node.next = post_current
def display(self):
current = self.head
if self.head is None:
print('\nList is Empty')
else:
while current is not None:
print(current.data, '', end='')
current = current.next
s = Singly()
s.insert_beginning(10)
s.insert_beginning(9)
s.insert_beginning(8)
s.insert_beginning(2)
s.insert_after(222, 11)
# s.insert_end(1)
# s.insert_before(1, 90)
s.display()Editor is loading...
Leave a Comment