You are on page 1of 3

3/12/23, 11:36 PM 2230851_cse203_class-10 - Colaboratory

1 class Node:
2   def __init__(self, data):
3     self.data = data
4     self.next= None

1 n1 = Node('eggs')
2 n2 = Node('ham')
3 n3 = Node('spam')
4 n1.next=n2
5 print(n1.next.data)
6 n2.next=n3
7 print(n2.next.data)
8 print(n1.next.data)
9 print('with loop')
10
11 current=n2
12 while current:
13   print(current.data)
14   current= current.next

ham
spam
ham
with loop
ham
spam

1 class Node:
2   def __init__(self, data):
3     self.data = data
4     self.next= None
5
6 class SinglyLinkedList():
7   def __init__(self):
8     self.head = None
9     self.size = 0
10
11
12 #Append data to the end of the linked list; naive approach
13   def append(self, new_data):
14     new_node = Node(new_data)
15     if self.head is None:
16       self.head = new_node
17     else:
18       current_node = self.head
19       while current_node.next is not None:
20         current_node = current_node.next
21       current_node.next = new_node
22     self.size += 1
23
24   # print the linked list 
25   def print_all(self):
26     current_node = self.head
27     while current_node!=None:
28       print(current_node.data, end =  "->")
29       current_node = current_node.next
30     print()
31   
32
33   # search a specific value in the linked list 
34   def search(self, data):
35     current_node = self.head
36     while current_node is not None:
37       if current_node.data == data:
38         return True  
39       current_node = current_node.next
40     return False
41
https://colab.research.google.com/drive/1d77jyoPbXRp0Q865aj8PIa3Sfyps9vIt?authuser=1#scrollTo=CVOMx5Zk45ng&printMode=true 1/3
3/12/23, 11:36 PM 2230851_cse203_class-10 - Colaboratory

42
43   #find odd
44   def findOdd(self):
45     current_node = self.head
46     while current_node != None:
47       if (current_node.data % 2 != 0):
48         return current_node.data
49       current_node = current_node.next
50
51
52   # Delete data from  the head of the list
53   def pop_left(self):
54     if self.size==0:
55       print("List is empty")
56     else:
57       self.size -= 1
58       self.head = self.head.next
59
60   # Delete data from  the end of the list   
61   def pop(self):
62     if self.size==0:
63       print("List is empty")
64     else:
65       self.size -= 1
66       current_node = self.head
67       if self.head.next==None:
68         self.head = self.head.next
69       else:
70         while current_node.next is not None:
71           if current_node.next.next is None:
72             current_node.next = None
73           else:
74             current_node = current_node.next  
75   
76
77     # Delete the first appearance of data from the list 
78   def delete(self, value_to_be_deleted):
79     if self.size==0:
80       print("List is empty")
81     else: 
82       current_node = self.head
83       if current_node.data == value_to_be_deleted:
84         self.size -= 1 
85         self.head = self.head.next
86       else:
87         while current_node.next is not None:
88           if current_node.next.data == value_to_be_deleted:
89             self.size -= 1 
90             current_node.next = current_node.next.next
91             return 
92           else:
93             current_node = current_node.next  
94
95   #find odd numder
96   def odd_deleter(self):
97     word = self.head
98     while word:
99       val = word.data
100       if val % 2  != 0:
101         self.delete(val)
102         break
103       word = word.next
104     return "No odd number found !"
105
106
107   def del_nth(self,n):
108     if self.size < n:
109       print("there is no val")
https://colab.research.google.com/drive/1d77jyoPbXRp0Q865aj8PIa3Sfyps9vIt?authuser=1#scrollTo=CVOMx5Zk45ng&printMode=true 2/3
3/12/23, 11:36 PM 2230851_cse203_class-10 - Colaboratory
110     else:
111       current_node = self.head
112       for i in range(n-1):
113         current_node = current_node.next
114       self.delete(current_node.data)
115
116
117
118 s= SinglyLinkedList()
119 data=[6,8,10,3,2]
120 # s.append('sargis')
121 # s.append('id: 2230851')
122 # s.append(6)
123 # s.append(8)
124 # s.append(10)
125 # s.append(3)
126 # s.append(2)
127 for i in data:
128   s.append(i)
129
130 s.print_all()
131 print(s.search(3))
132 s.pop()
133 s.print_all()
134 s.pop_left()
135 s.print_all()
136 s.odd_deleter()
137 s.print_all()
138 s.findOdd()
139 s.print_all()
140 s.del_nth(6)
141 s.print_all()

6->8->10->3->2->
True
6->8->10->3->
8->10->3->
8->10->
8->10->
there is no val
8->10->

Colab paid products - Cancel contracts here

check 0s completed at 11:36 PM

https://colab.research.google.com/drive/1d77jyoPbXRp0Q865aj8PIa3Sfyps9vIt?authuser=1#scrollTo=CVOMx5Zk45ng&printMode=true 3/3

You might also like