Add new course
This commit is contained in:
@@ -0,0 +1,97 @@
|
||||
class Node:
|
||||
def __init__(self, data=None):
|
||||
self.data = data
|
||||
self.next = None
|
||||
|
||||
|
||||
class LinkedList:
|
||||
def __init__(self):
|
||||
self.head = None
|
||||
|
||||
def append(self, data):
|
||||
new = Node(data)
|
||||
if self.head is None:
|
||||
self.head = new
|
||||
return
|
||||
last = self.head
|
||||
while (last.next):
|
||||
last = last.next
|
||||
last.next = new
|
||||
|
||||
def print(self):
|
||||
val = self.head
|
||||
while val is not None:
|
||||
if val.next is None:
|
||||
print(val.data)
|
||||
else:
|
||||
print(val.data, end=" -> ")
|
||||
val = val.next
|
||||
|
||||
def length(self):
|
||||
temp = self.head
|
||||
count = 0
|
||||
while (temp != None):
|
||||
count += 1
|
||||
temp = temp.next
|
||||
return count
|
||||
|
||||
def insert(self, data, index):
|
||||
new = Node(data)
|
||||
if (index == 0):
|
||||
new.next = self.head
|
||||
self.head = new
|
||||
else:
|
||||
temp = self.head
|
||||
for i in range(1, index):
|
||||
if (temp != None):
|
||||
temp = temp.next
|
||||
if (temp != None):
|
||||
new.next = temp.next
|
||||
temp.next = new
|
||||
else:
|
||||
print("\nThe previous node is null.")
|
||||
|
||||
def index(self, data):
|
||||
temp = self.head
|
||||
index = 0
|
||||
while (temp != None):
|
||||
if (temp.data == data):
|
||||
return index
|
||||
temp = temp.next
|
||||
index += 1
|
||||
return -1
|
||||
|
||||
def delete(self, index):
|
||||
if (index == 0):
|
||||
self.head = self.head.next
|
||||
elif (index >= self.length()):
|
||||
return
|
||||
else:
|
||||
temp = self.head
|
||||
for i in range(1, index):
|
||||
if (temp != None):
|
||||
temp = temp.next
|
||||
if (temp != None):
|
||||
temp.next = temp.next.next
|
||||
else:
|
||||
print("\nThe previous node is null.")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
L = LinkedList()
|
||||
L.append(2)
|
||||
L.append(3)
|
||||
L.append(1)
|
||||
L.append(4)
|
||||
L.print() # 1 -> 3
|
||||
L.insert(4, 3)
|
||||
L.insert(1, 0)
|
||||
L.insert(3, 2)
|
||||
L.insert(2, 1)
|
||||
L.print() # 15 -> 1 -> 10 -> 3
|
||||
print(L.index(1)) # 1
|
||||
L.delete(0)
|
||||
L.delete(1)
|
||||
L.delete(4)
|
||||
L.delete(5)
|
||||
L.print() # 1 -> 10 -> 3
|
||||
Reference in New Issue
Block a user