Skip to content

Commit 0cd1de2

Browse files
Merge pull request #259 from Gunnika/master
Addition of Linked List algorithms
2 parents 1e80c5d + dab14e0 commit 0cd1de2

File tree

2 files changed

+124
-0
lines changed

2 files changed

+124
-0
lines changed

Linked List/Delete_node_from_LL.py

+68
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
class Node:
2+
def __init__(self, data):
3+
self.data = data
4+
self.next = None
5+
6+
class LinkedList:
7+
def __init__(self):
8+
self.head = None
9+
10+
def DeleteNode(self, value):
11+
if self.head==None:
12+
print('Empty List')
13+
else:
14+
prev = None
15+
curr = self.head
16+
while(curr):
17+
if curr.data == value:
18+
if prev:
19+
prev.next = curr.next
20+
else:
21+
self.head = curr.next
22+
return True
23+
prev = curr
24+
curr = curr.next
25+
return False
26+
27+
28+
29+
def push(self, new_node):
30+
if not self.head:
31+
self.head = new_node
32+
else:
33+
current=self.head
34+
while(current.next):
35+
current = current.next
36+
current.next = new_node
37+
new_node.next = None
38+
39+
40+
41+
def printlist(self):
42+
curr = self.head
43+
while(curr):
44+
print(curr.data)
45+
curr = curr.next
46+
47+
# driver code
48+
llist = LinkedList()
49+
newval = Node(2)
50+
llist.push(newval)
51+
newval = Node(6)
52+
llist.push(newval)
53+
newval = Node(1)
54+
llist.push(newval)
55+
newval = Node(5)
56+
llist.push(newval)
57+
print("Created Linked List")
58+
llist.printlist()
59+
if(llist.DeleteNode(1)):
60+
print('Deleted')
61+
else:
62+
print("Node not found")
63+
llist.printlist()
64+
if(llist.DeleteNode(9)):
65+
print('Deleted')
66+
else:
67+
print("Node not found")
68+
llist.printlist()

Linked List/Sorted_insertion_in_LL.py

+56
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
class Node:
2+
def __init__(self, data):
3+
self.val = data
4+
self.next = None
5+
6+
class LinkedList:
7+
def __init__(self):
8+
self.head = None
9+
10+
def sortedInsert(self, new_node):
11+
if not self.head:
12+
new_node.next=self.head
13+
self.head = new_node
14+
15+
elif new_node.val <= self.head.val :
16+
new_node.next = self.head
17+
self.head = new_node
18+
19+
else:
20+
current = self.head
21+
while(current.next is not None and current.next.val < new_node.val):
22+
current = current.next
23+
new_node.next = current.next
24+
current.next = new_node
25+
26+
def push(self, data):
27+
new_node = Node(data)
28+
new_node.next = self.head
29+
self.head = new_node
30+
31+
def printList(self):
32+
temp = self.head
33+
while(temp):
34+
print(temp.val)
35+
temp = temp.next
36+
37+
# driver code
38+
llist = LinkedList()
39+
new_node = Node(5)
40+
llist.sortedInsert(new_node)
41+
new_node = Node(10)
42+
llist.sortedInsert(new_node)
43+
new_node = Node(7)
44+
llist.sortedInsert(new_node)
45+
new_node = Node(3)
46+
llist.sortedInsert(new_node)
47+
new_node = Node(1)
48+
llist.sortedInsert(new_node)
49+
new_node = Node(9)
50+
llist.sortedInsert(new_node)
51+
print("Create Linked List")
52+
llist.printList()
53+
new_node = Node(4)
54+
llist.sortedInsert(new_node)
55+
print("Updated")
56+
llist.printList()

0 commit comments

Comments
 (0)