1
-
2
1
class Node :
3
-
4
- def __init__ (self ,value ,rptr = None ) -> None :
2
+ def __init__ (self , value , rptr = None ) -> None :
5
3
self .value = value
6
4
self .rptr = rptr
7
5
8
6
@property
9
7
def get_value (self ):
10
8
return self .value
11
-
9
+
12
10
@property
13
11
def next (self ):
14
12
return self .rptr
15
-
13
+
16
14
@next .setter
17
- def next (self ,ptr ):
15
+ def next (self , ptr ):
18
16
self .rptr = ptr
19
-
17
+
20
18
21
19
class Unordered_Linked_List :
22
20
def __init__ (self ) -> None :
23
21
self .first_node = None
24
-
25
- def insert (self ,value ):
22
+
23
+ def insert (self , value ):
26
24
# inserts a new node with the given value
27
25
if self .first_node is None :
28
26
self .first_node = Node (value )
29
27
else :
30
28
tmp = Node (value )
31
29
tmp .next = self .first_node
32
30
self .first_node = tmp
33
-
34
- def find (self ,value ):
31
+
32
+ def find (self , value ):
35
33
# returns true if the specified value is in your list
36
34
ptr = self .first_node
37
35
while ptr is not None :
38
36
if ptr .value == value :
39
- print (f' { value } is in your list' )
37
+ print (f" { value } is in your list" )
40
38
return True
41
39
else :
42
40
ptr = ptr .next
43
-
44
- print (f' { value } is not in your list' )
41
+
42
+ print (f" { value } is not in your list" )
45
43
return False
46
-
47
- def size (self ): # returns size of the list
44
+
45
+ def size (self ): # returns size of the list
48
46
ptr = self .first_node
49
47
i = 0
50
48
while ptr is not None :
51
49
ptr = ptr .next
52
- i += 1
53
- print (f' Your list is of size { i } ' )
50
+ i += 1
51
+ print (f" Your list is of size { i } " )
54
52
return i
55
-
56
- def remove (self ,value ):
53
+
54
+ def remove (self , value ):
57
55
# removes all instances of a given value
58
56
ptr = self .first_node
59
57
prev = None
@@ -64,19 +62,20 @@ def remove(self,value):
64
62
self .first_node = tmp
65
63
else :
66
64
prev .next = ptr .next
67
-
65
+
68
66
prev = ptr
69
67
ptr = ptr .next
70
-
68
+
71
69
def show (self ):
72
70
ptr = self .first_node
73
71
val = []
74
72
while ptr is not None :
75
73
val .append (ptr .get_value )
76
74
ptr = ptr .next
77
-
75
+
78
76
print (val )
79
77
78
+
80
79
def main ():
81
80
list = Unordered_Linked_List ()
82
81
@@ -102,17 +101,13 @@ def main():
102
101
list .insert (3 )
103
102
list .insert (5 )
104
103
list .insert (3 )
105
-
104
+
106
105
list .show ()
107
106
108
107
list .remove (3 )
109
108
110
109
list .show ()
111
110
112
111
113
-
114
-
115
112
if __name__ == "__main__" :
116
113
main ()
117
-
118
-
0 commit comments