Python for Engineers has been selected by Feedspot as one of the Top 60 Python Blogs on the web
https://blog.feedspot.com/
Solve Problems by Coding Solutions - A Complete solution for python programming
Python for Engineers has been selected by Feedspot as one of the Top 60 Python Blogs on the web
https://blog.feedspot.com/
class Node():
def __init__(self,data):
self.next = None
self.prev = None
self.data = data
class Stack():
def __init__(self):
self.head = None
self.tail = None
def push(self, data):
new_node = Node(data)
if (self.head == None):
self.head = new_node
self.head.next= None
self.head.prev = None
self.tail = new_node
else:
new_node.prev = self.tail
self.tail.next = new_node
self.tail = new_node
def pop(self):
if (self.head == None):
print("Stack underflow")
if (self.head == self.tail):
self.head = None
self.tail = None
else:
node = self.tail
self.tail = self.tail.prev
del node
self.tail.next = None
def merge(self, stack):
if stack.head == None: return
if self.head == None:
self.head = stack.head
self.tail = stack.tail
return
self.head.prev = stack.tail
stack.tail.nxt = self.head
self.head = stack.head
def display(self):
if (self.tail != None):
n = self.tail
while (n != None):
print(n.data, end = " ")
n = n.prev
print()
else:
print("Stack Underflow")
ms1 = Stack()
ms2 = Stack()
ms1.push(6)
ms1.push(5)
ms1.push(4)
ms2.push(9)
ms2.push(8)
ms2.push(7)
ms1.merge(ms2)
ms1.display()
while ms1.head != ms1.tail:
ms1.pop ()
print ("check pop all elements until head == tail (one element left)")
print ("on merged stack: ", end = "")
ms1.display()
def triplets(arr, n):
f = False
for i in range(0, n-2):
for j in range(i+1, n-1):
for k in range(j+1, n):
if (arr[i] + arr[j] + arr[k] == 0):
print(arr[i], arr[j], arr[k])
f = True
if (f == False):
print(" not exist ")
arr = [0, -1, 2, -3, 1]
n = len(arr)
triplets(arr, n)
from queue import Queue
def interLeaveQueue(q):
if (q.qsize() % 2 != 0):
print("Input even number of integers.")
s = []
size = int(q.qsize() / 2)
for i in range(size):
s.append(q.queue[0])
q.get()
while len(s) != 0:
q.put(s[-1])
s.pop()
for i in range(size):
q.put(q.queue[0])
q.get()
for i in range(size):
s.append(q.queue[0])
q.get()
while len(s) != 0:
q.put(s[-1])
s.pop()
q.put(q.queue[0])
q.get()
if __name__ == '__main__':
q = Queue()
q.put(11)
q.put(12)
q.put(13)
q.put(14)
q.put(15)
q.put(16)
q.put(17)
q.put(18)
q.put(19)
q.put(20)
interLeaveQueue(q)
length = q.qsize()
for i in range(length):
print(q.queue[0], end=" ")
q.get()
class Nodes:
def __init__(self):
self.data = None
self.next = None
self.prev = None
def push( ref, new_data):
new_node = Nodes()
new_node.data = new_data
new_node.next = (ref)
new_node.prev = None
if ((ref) != None):
(ref).prev = new_node
(ref) = new_node
return ref
def findSize(node):
res = 0
while (node != None):
res = res + 1
node = node.next
return res
head = None
head = push(head, 4)
head = push(head, 3)
head = push(head, 2)
head = push(head, 1)
print(findSize(head))