File tree Expand file tree Collapse file tree 2 files changed +115
-2
lines changed Expand file tree Collapse file tree 2 files changed +115
-2
lines changed Original file line number Diff line number Diff line change @@ -2230,8 +2230,8 @@ In order to achieve greater coverage and encourage more people to contribute to
2230
2230
</a>
2231
2231
</td>
2232
2232
<td> <!-- Python -->
2233
- <a href="./CONTRIBUTING.md ">
2234
- <img align="center" height="25" src="./logos/github .svg" />
2233
+ <a href="./src/python/unordered_linked_list.py ">
2234
+ <img align="center" height="25" src="./logos/python .svg" />
2235
2235
</a>
2236
2236
</td>
2237
2237
<td> <!-- Go -->
Original file line number Diff line number Diff line change
1
+ class Node :
2
+ def __init__ (self , value , rptr = None ) -> None :
3
+ self .value = value
4
+ self .rptr = rptr
5
+
6
+ @property
7
+ def get_value (self ):
8
+ return self .value
9
+
10
+ @property
11
+ def next (self ):
12
+ return self .rptr
13
+
14
+ @next .setter
15
+ def next (self , ptr ):
16
+ self .rptr = ptr
17
+
18
+
19
+ class Unordered_Linked_List :
20
+ def __init__ (self ) -> None :
21
+ self .first_node = None
22
+
23
+ def insert (self , value ):
24
+ # inserts a new node with the given value
25
+ if self .first_node is None :
26
+ self .first_node = Node (value )
27
+ else :
28
+ tmp = Node (value )
29
+ tmp .next = self .first_node
30
+ self .first_node = tmp
31
+
32
+ def find (self , value ):
33
+ # 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 ):
55
+ # removes all instances of a given value
56
+ ptr = self .first_node
57
+ prev = None
58
+ while ptr is not None :
59
+ if ptr .value == value :
60
+ if ptr == self .first_node :
61
+ tmp = ptr .next
62
+ self .first_node = tmp
63
+ else :
64
+ prev .next = ptr .next
65
+
66
+ prev = ptr
67
+ ptr = ptr .next
68
+
69
+ def show (self ):
70
+ ptr = self .first_node
71
+ val = []
72
+ while ptr is not None :
73
+ val .append (ptr .get_value )
74
+ ptr = ptr .next
75
+
76
+ print (val )
77
+
78
+
79
+ def main ():
80
+ list = Unordered_Linked_List ()
81
+
82
+ list .insert (1 )
83
+ list .insert (3 )
84
+ list .insert (5 )
85
+ list .insert (2 )
86
+
87
+ list .size ()
88
+ list .show ()
89
+
90
+ list .find (3 )
91
+ list .find (9 )
92
+
93
+ list .remove (1 )
94
+ list .remove (3 )
95
+ list .remove (5 )
96
+ list .remove (2 )
97
+
98
+ list .show ()
99
+
100
+ list .insert (1 )
101
+ list .insert (3 )
102
+ list .insert (5 )
103
+ list .insert (3 )
104
+
105
+ list .show ()
106
+
107
+ list .remove (3 )
108
+
109
+ list .show ()
110
+
111
+
112
+ if __name__ == "__main__" :
113
+ main ()
You can’t perform that action at this time.
0 commit comments