File tree 3 files changed +149
-0
lines changed
Advance-Data-Structure/PYTHON
3 files changed +149
-0
lines changed Original file line number Diff line number Diff line change
1
+ """
2
+ DFS
3
+
4
+ TC: O(V+E)
5
+ SC: O(V)
6
+ """
7
+
8
+
9
+ def dfs (graph , visited , node ):
10
+ if node in visited :
11
+ return
12
+
13
+ print (node )
14
+ visited .add (node )
15
+ for neighbour in graph [node ]:
16
+ dfs (graph , visited , neighbour )
17
+
18
+
19
+ if __name__ == '__main__' :
20
+ graph = {
21
+ '5' : ['3' , '7' ],
22
+ '3' : ['2' , '4' ],
23
+ '7' : ['8' ],
24
+ '2' : [],
25
+ '4' : ['8' ],
26
+ '8' : []
27
+ }
28
+ visited = set ()
29
+ dfs (graph , visited , '5' )
Original file line number Diff line number Diff line change
1
+ class Node :
2
+ def __init__ (self , data = None ):
3
+ self .data = data
4
+ self .next = None
5
+
6
+
7
+ class LinkedList :
8
+ def __init__ (self ):
9
+ self .head = None
10
+
11
+ def insertAtBeginning (self , data ):
12
+ new_node = Node (data )
13
+ new_node .next = self .head
14
+ self .head = new_node
15
+
16
+ def insertAtEnd (self , data ):
17
+ new_node = Node (data )
18
+
19
+ if not self .head :
20
+ self .head = new_node
21
+ return
22
+
23
+ curr = self .head
24
+ while curr .next :
25
+ curr = curr .next
26
+
27
+ curr .next = new_node
28
+
29
+ def search (self , data ):
30
+ if not self .head :
31
+ print ('List is empty!' )
32
+
33
+ curr = self .head
34
+ while curr :
35
+ if curr .data == data :
36
+ return True
37
+ curr = curr .next
38
+ return False
39
+
40
+ def deleteNode (self , position ):
41
+ if not self .head :
42
+ return
43
+
44
+ curr = self .head
45
+
46
+ if position == 0 :
47
+ self .head = curr .next
48
+ curr = None
49
+ return
50
+
51
+ for i in range (position - 1 ):
52
+ curr = curr .next
53
+ if not curr :
54
+ return
55
+
56
+ if not curr .next :
57
+ return
58
+
59
+ next_node = curr .next .next
60
+ curr .next = None
61
+ curr .next = next_node
62
+
63
+ def printList (self ):
64
+ if not self .head :
65
+ print ('List is empty!' )
66
+ return
67
+
68
+ curr = self .head
69
+ while curr :
70
+ print (curr .data , end = ' --> ' )
71
+ curr = curr .next
72
+ print ()
73
+
74
+
75
+ if __name__ == '__main__' :
76
+ llist = LinkedList ()
77
+ print (llist .search (1 ))
78
+ llist .printList ()
79
+ llist .insertAtBeginning (1 )
80
+ print (llist .search (1 ))
81
+ print (llist .search (2 ))
82
+ llist .printList ()
83
+ llist .insertAtBeginning (3 )
84
+ llist .insertAtBeginning (7 )
85
+ llist .printList ()
86
+ llist .insertAtEnd (- 1 )
87
+ llist .insertAtEnd (- 17 )
88
+ llist .printList ()
89
+ llist .deleteNode (0 )
90
+ llist .printList ()
91
+ llist .deleteNode (7 )
92
+ llist .printList ()
93
+ llist .deleteNode (2 )
94
+ llist .printList ()
95
+ llist .deleteNode (2 )
96
+ llist .printList ()
Original file line number Diff line number Diff line change
1
+ import math
2
+
3
+ MX = 105
4
+
5
+
6
+ def sieve (isPrime ):
7
+ isPrime [0 ] = isPrime [1 ] = False
8
+ for i in range (2 , int (math .sqrt (MX ))):
9
+ if isPrime [i ]:
10
+ for j in range (2 * i , MX , i ):
11
+ isPrime [j ] = False
12
+
13
+
14
+ def printPrime (isPrime ):
15
+ for i in range (MX ):
16
+ if isPrime [i ]:
17
+ print (i , end = " " )
18
+ print ()
19
+
20
+
21
+ if __name__ == '__main__' :
22
+ isPrime = [True for _ in range (MX )]
23
+ sieve (isPrime )
24
+ printPrime (isPrime )
You can’t perform that action at this time.
0 commit comments