Add new course

This commit is contained in:
AndrewTrieu
2023-01-08 18:43:01 +02:00
parent 75313f3f05
commit 6f5c7f67b4
49 changed files with 835669 additions and 0 deletions

View File

@@ -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