Skip to content

Commit 7906f2c

Browse files
Python_Implementation
1 parent 708f200 commit 7906f2c

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

52 files changed

+1522
-0
lines changed

Max1.py

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
l1=[1,34,23,67,35]
2+
print(max(l1))
3+
print(min(l1))

Pallindrome_Stack.py

+60
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
# Python3 implementation of the approach
2+
stack = []
3+
top = -1
4+
5+
# push function
6+
def push(ele: str):
7+
global top
8+
top += 1
9+
stack[top] = ele
10+
11+
# pop function
12+
def pop():
13+
global top
14+
ele = stack[top]
15+
top -= 1
16+
return ele
17+
18+
# Function that returns 1
19+
# if str is a palindrome
20+
def isPalindrome(string: str) -> bool:
21+
global stack
22+
length = len(string)
23+
24+
# Allocating the memory for the stack
25+
stack = ['0'] * (length + 1)
26+
27+
# Finding the mid
28+
mid = length // 2
29+
i = 0
30+
while i < mid:
31+
push(string[i])
32+
i += 1
33+
34+
# Checking if the length of the string
35+
# is odd, if odd then neglect the
36+
# middle character
37+
if length % 2 != 0:
38+
i += 1
39+
40+
# While not the end of the string
41+
while i < length:
42+
ele = pop()
43+
44+
# If the characters differ then the
45+
# given string is not a palindrome
46+
if ele != string[i]:
47+
return False
48+
i += 1
49+
return True
50+
51+
# Driver Code
52+
if __name__ == "__main__":
53+
54+
string = "madam"
55+
56+
if isPalindrome(string):
57+
print("Yes")
58+
else:
59+
print("No")
60+

balParenthesis.py

+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
def isBalanced(exp):
2+
flag = True
3+
count = 0
4+
for i in range(len(exp)):
5+
if(exp[i] == '('):
6+
count += 1
7+
else:
8+
count -= 1
9+
if(count < 0):
10+
flag = False
11+
break
12+
if(count != 0):
13+
flag = False
14+
return flag
15+
if __name__ == '__main__':
16+
17+
exp1 = "((()))()()"
18+
if(isBalanced(exp1)):
19+
print("Balanced ")
20+
else:
21+
print("Not Balanced ")
22+
23+
exp2 = "())((())"
24+
25+
if(isBalanced(exp2)):
26+
print("Balanced ")
27+
else:
28+
print("Not Balanced ")

binarySearch.py

+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
def binarySearch(lst,searchValue):
2+
low, high = 0, len(lst) - 1
3+
while low <= high:
4+
mid = int((low + high)/2)
5+
if lst[mid] == searchValue:
6+
return mid
7+
elif searchValue < lst[mid]:
8+
high = mid - 1
9+
else:
10+
low = mid + 1
11+
return None
12+
13+
def isSorted(lst):
14+
for i in range(1, len(lst)):
15+
if lst[i] < lst[i - 1]:
16+
return False
17+
return True
18+
19+
def main():
20+
lst = eval(input('Enter a sorted list : '))
21+
if not(isSorted(lst)):
22+
print('Given list is not Sorted')
23+
else:
24+
searchVal = eval(input('Enter the value to be searched'))
25+
print(searchVal,'found index at',binarySearch(lst,searchVal))
26+
27+
if __name__ == '__main__':
28+
main()

bubbleSort.py

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
def bubbleSort(lst):
2+
n = len(lst) - 1
3+
for i in range(0, n):
4+
for j in range(0, i, -1):
5+
if lst[j] < lst[j - 1]:
6+
lst[j], lst[j - 1] = lst[j - 1], lst[j]
7+
8+
def main():
9+
lst = eval(input('Enter the list : '))
10+
print('Sorted list')
11+
lst.sort()
12+
print(lst)
13+
14+
if __name__=='__main__':
15+
main()

bubbleSort1.py

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
def bubbleSort(lst):
2+
n = len(lst)-1
3+
for i in range(0,n):
4+
swap = False
5+
for j in range(n, i ,-1):
6+
if lst[j] < lst[j - 1]:
7+
swap = True
8+
lst[j], lst[j - 1] = lst [j - 1], lst[j]
9+
if swap == False:
10+
break
11+
def main():
12+
lst = eval(input('Enter the list'))
13+
print('Sorted list')
14+
bubbleSort(lst)
15+
print(lst)
16+
17+
if __name__ == '__main__':
18+
main()

enQueue.py

+55
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
class Queue:
2+
def __init__(self, capacity):
3+
self.front = self.size = 0
4+
self.rear = capacity - 1
5+
self.Q =[None]*capacity
6+
self.capacity = capacity
7+
8+
def isFull(self):
9+
return self.size == self.capacity
10+
11+
def isEmpty(self):
12+
return self.size == 0
13+
14+
def EnQueue(self, item):
15+
if self.isFull():
16+
print('Full')
17+
return
18+
self.rear = (self.rear + 1) % (self.capacity)
19+
self.Q[self.rear] = item
20+
self.size = self.size + 1
21+
print('% s enqueued to queue' %str(item))
22+
23+
def DeQueue(self):
24+
if self.isEmpty():
25+
print('Empty')
26+
return
27+
28+
print('% s dequeued from queue' % str(self.Q[self.front]))
29+
self.front = (self.front + 1) % (self.capacity)
30+
self.size = self.size -1
31+
32+
def que_front(self):
33+
if self.isEmpty():
34+
print('Queue is empty')
35+
36+
print('Front item is ', self.Q[self.front])
37+
38+
def que_rear(self):
39+
if self.isEmpty():
40+
print('Queue is empty')
41+
42+
print('Rear item is ', self.Q[self.rear])
43+
44+
#Driver Code
45+
46+
if __name__ == '__main__':
47+
queue = Queue(30)
48+
queue.EnQueue(10)
49+
queue.EnQueue(20)
50+
queue.EnQueue(30)
51+
queue.EnQueue(40)
52+
queue.DeQueue()
53+
queue.que_front()
54+
queue.que_rear()
55+

evaluatePostfix.py

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
from stack import Stack
2+
def evaluatePostfixExp(exp):
3+
stk = Stack()
4+
operations = ['+','-','*','/']
5+
for symbol in exp:
6+
if symbol in operations:
7+
operand2 = stk.pop()
8+
operand1 = stk.pop()
9+
result = str(eval(operand1 + symbol + operand2 ))
10+
stk.push(result)
11+
else:
12+
stk.push(symbol)
13+
result = int(stk.pop())
14+
return result
15+
16+
def main():
17+
exp = input('Enter a postfix expression use single digit number only:')
18+
result = evaluatePostfixExp(exp)
19+
print(result)
20+
21+
if __name__ == '__main__':
22+
main()

getmin.py

+98
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
class Node:
2+
def __init__(self, value):
3+
self.value = value
4+
self.next = None
5+
6+
def __str__(self):
7+
return 'Node ({})'.format(self.value)
8+
9+
__repr__ = __str__
10+
11+
12+
class Stack:
13+
def __init__(self):
14+
self.top = None
15+
self.count = 0
16+
self.minimum = None
17+
18+
def __str__(self):
19+
temp = self.top
20+
out = []
21+
while temp:
22+
out.append(str(temp.value))
23+
temp = temp.next
24+
out = '\n'.join(out)
25+
return('Top {} \n\nStack : \n{}'.format(self.top.out))
26+
27+
def getMin(self):
28+
if self.top is None:
29+
return "Stack is empty"
30+
else:
31+
print("Minimum Element in the stack is: {}" .format(self.minimum))
32+
33+
def isEmpty(self):
34+
if self.top == None:
35+
return True
36+
else:
37+
return False
38+
39+
def __len__(self):
40+
self.count = 0
41+
tempNode = self.top
42+
while tempNode:
43+
tempNode = tempNode.next
44+
self.count += 1
45+
return self.count
46+
47+
def peek(self):
48+
if self.top is None:
49+
print('Stack is Empty')
50+
else:
51+
if self.top.value < self.minimum:
52+
print('Top Most Element is : {}'.format(self.minimum))
53+
else:
54+
print('Top Most Element is : {}'.format(self.top.value))
55+
56+
def push(self,value):
57+
if self.top is None:
58+
self.top = Node(value)
59+
self.minimum = value
60+
61+
elif value < self.minimum:
62+
temp = (2 * value) - self.minimum
63+
new_node = Node(temp)
64+
new_node.next = self.top
65+
self.top = new_node
66+
self.minimum = value
67+
else:
68+
new_node = Node(value)
69+
new_node.next = self.top
70+
self.top = new_node
71+
print('Number Inserted : {} '.format(value))
72+
73+
def pop(self):
74+
if self.top is None:
75+
print('Stack is empty')
76+
else:
77+
removedNode = self.top.value
78+
self.top = self.top.next
79+
if removedNode < self.minimum:
80+
print("Top Most Element Removed :{} " .format(self.minimum))
81+
self.minimum = ( ( 2 * self.minimum ) - removedNode )
82+
else:
83+
print ("Top Most Element Removed : {}" .format(removedNode))
84+
85+
86+
#Driver Class
87+
stack = Stack()
88+
89+
stack.push(3)
90+
stack.push(5)
91+
stack.getMin()
92+
stack.push(2)
93+
stack.push(1)
94+
stack.getMin()
95+
stack.pop()
96+
stack.getMin()
97+
stack.pop()
98+
stack.peek()

implementQueue.py

+55
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
class Queue:
2+
def __init__(self, capacity):
3+
self.front = self.size = 0
4+
self.rear = capacity - 1
5+
self.Q =[None]*capacity
6+
self.capacity = capacity
7+
8+
def isFull(self):
9+
return self.size == self.capacity
10+
11+
def isEmpty(self):
12+
return self.size == 0
13+
14+
def EnQueue(self, item):
15+
if self.isFull():
16+
print('Full')
17+
return
18+
self.rear = (self.rear + 1) % (self.capacity)
19+
self.Q[self.rear] = item
20+
self.size = self.size + 1
21+
print('% s enqueued to queue' %str(item))
22+
23+
def DeQueue(self):
24+
if self.isEmpty():
25+
print('Empty')
26+
return
27+
28+
print('% s dequeued from queue' % str(self.Q[self.front]))
29+
self.front = (self.front + 1) % (self.capacity)
30+
self.size = self.size -1
31+
32+
def que_front(self):
33+
if self.isEmpty():
34+
print('Queue is empty')
35+
36+
print('Front item is ', self.Q[self.front])
37+
38+
def que_rear(self):
39+
if self.isEmpty():
40+
print('Queue is empty')
41+
42+
print('Rear item is ', self.Q[self.rear])
43+
44+
#Driver Code
45+
46+
if __name__ == '__main__':
47+
queue = Queue(30)
48+
queue.EnQueue(10)
49+
queue.EnQueue(20)
50+
queue.EnQueue(30)
51+
queue.EnQueue(40)
52+
queue.DeQueue()
53+
queue.que_front()
54+
queue.que_rear()
55+

0 commit comments

Comments
 (0)