File tree Expand file tree Collapse file tree 1 file changed +115
-0
lines changed Expand file tree Collapse file tree 1 file changed +115
-0
lines changed Original file line number Diff line number Diff line change
1
+
2
+ class Node :
3
+
4
+ def __init__ (self ,value ,rptr = None ) -> None :
5
+ self .value = value
6
+ self .rptr = rptr
7
+
8
+ @property
9
+ def get_value (self ):
10
+ return self .value
11
+
12
+ @property
13
+ def next (self ):
14
+ return self .rptr
15
+
16
+ @next .setter
17
+ def next (self ,ptr ):
18
+ self .rptr = ptr
19
+
20
+
21
+ class Unordered_Linked_List :
22
+ def __init__ (self ) -> None :
23
+ self .first_node = None
24
+
25
+ def insert (self ,value ): # inserts a new node with the given value
26
+ if self .first_node is None :
27
+ self .first_node = Node (value )
28
+ else :
29
+ tmp = Node (value )
30
+ tmp .next = self .first_node
31
+ self .first_node = tmp
32
+
33
+ def find (self ,value ): # returns true if the specified value is in your list
34
+ ptr = self .first_node
35
+ while ptr is not None :
36
+ if ptr .value == value :
37
+ print (f'{ value } is in your list' )
38
+ return True
39
+ else :
40
+ ptr = ptr .next
41
+
42
+ print (f'{ value } is not in your list' )
43
+ return False
44
+
45
+ def size (self ): # returns size of the list
46
+ ptr = self .first_node
47
+ i = 0
48
+ while ptr is not None :
49
+ ptr = ptr .next
50
+ i += 1
51
+ print (f'Your list is of size { i } ' )
52
+ return i
53
+
54
+ def remove (self ,value ): # removes all instances of a given value
55
+ ptr = self .first_node
56
+ prev = None
57
+ while ptr is not None :
58
+ if ptr .value == value :
59
+ if ptr == self .first_node :
60
+ tmp = ptr .next
61
+ self .first_node = tmp
62
+ else :
63
+ prev .next = ptr .next
64
+
65
+ prev = ptr
66
+ ptr = ptr .next
67
+
68
+ def show (self ):
69
+ ptr = self .first_node
70
+ val = []
71
+ while ptr is not None :
72
+ val .append (ptr .get_value )
73
+ ptr = ptr .next
74
+
75
+ print (val )
76
+
77
+ def main ():
78
+ list = Unordered_Linked_List ()
79
+
80
+ list .insert (1 )
81
+ list .insert (3 )
82
+ list .insert (5 )
83
+ list .insert (2 )
84
+
85
+ list .size ()
86
+ list .show ()
87
+
88
+ list .find (3 )
89
+ list .find (9 )
90
+
91
+ list .remove (1 )
92
+ list .remove (3 )
93
+ list .remove (5 )
94
+ list .remove (2 )
95
+
96
+ list .show ()
97
+
98
+ list .insert (1 )
99
+ list .insert (3 )
100
+ list .insert (5 )
101
+ list .insert (3 )
102
+
103
+ list .show ()
104
+
105
+ list .remove (3 )
106
+
107
+ list .show ()
108
+
109
+
110
+
111
+
112
+ if __name__ == "__main__" :
113
+ main ()
114
+
115
+
You can’t perform that action at this time.
0 commit comments