@@ -3,18 +3,6 @@ def __init__(self, data=None):
33 self .data = data
44 self .next_node = None
55
6- def getData (self ):
7- return self .data
8-
9- def setData (self , data ):
10- self .data = data
11-
12- def getNextNode (self ):
13- return self .next_node
14-
15- def setNextNode (self , new_next ):
16- self .next_node = new_next
17-
186class LinkedList :
197 def __init__ (self , head = None ):
208 self .head = head
@@ -23,44 +11,74 @@ def isEmpty(self):
2311 return self .head == None
2412
2513 def insert (self , data ):
26- temp = Node (data )
27- temp .setNextNode (self .head )
14+ # create a temp node
15+ temp = Node (data = data )
16+ # point new node to head
17+ temp .next_node = self .head
18+ # set the head as new node
2819 self .head = temp
2920
21+ def insert_after (self , prev , data ):
22+ if prev is None :
23+ raise ValueError ("Given node is not found..." )
24+ return prev
25+
26+ # create a temp node
27+ temp = Node (data = data )
28+ # set next node of temp to the next node of previous
29+ temp .next_node = prev .next_node
30+ # set next node of previous to point temp
31+ prev .next_node = temp
32+
3033 def size (self ):
34+ # start with the head
3135 current = self .head
3236 count = 0
37+
38+ # loop unless current is not None
3339 while current :
3440 count += 1
35- current . getNextNode ()
41+ current = current . next_node
3642 return count
3743
3844 def search (self , data ):
45+ # start with the head
3946 current = self .head
4047 found = False
48+
49+ # loop unless current is not None
4150 while current and not found :
42- if current .getData () == data :
51+ # if found, change flag and return data
52+ if current .data == data :
4353 found = True
4454 else :
45- current = current .getNextNode ()
55+ # change current to next node
56+ current = current .next_node
4657 if current is None :
58+ # raise Exception if not found
4759 raise ValueError ("Data is not in the list" )
4860 return current
4961
5062 def delete (self , data ):
63+ # start with the head
5164 current = self .head
5265 previous = None
5366 found = False
67+
68+ # loop unless current is not None
5469 while current and not found :
70+ # if found, change flag
5571 if current .getData () == data :
5672 found = True
5773 else :
5874 previous = current
59- current = current .getNextNode ()
75+ current = current .next_node
76+
6077 if current is None :
78+ # raise Exception if not found
6179 raise ValueError ("Data is not in the list" )
6280 if previous is None :
63- self .head = current .getNextNode ()
81+ self .head = current .next_node
6482 else :
65- previous .setNextNode ( current .getNextNode ())
83+ previous .next_node = current .next_node
6684
0 commit comments