Www.digitaltanmay.com



Program 1# Python code to demonstrate Implementing # stack using list stack = ["Amar", "Akbar", "Anthony"] stack.append("Ram") stack.append("Iqbal") print(stack) print(stack.pop()) print(stack) print(stack.pop()) print(stack)Program 2top=0mymax=eval(input("Enter Maximum size of stack:"))def createStack(): stack=[] return stackdef isEmpty(stack): return len(stack)==0def Push(stack,item): stack.append(item) print("Pushed to stack",item)def Pop(stack): if isEmpty(stack): return "stack underflow" return stack.pop()stack=createStack()while True: print("1.Push") print("2.Pop") print("3.Display") print("4.Quit") ch=int(input("Enter your choice:")) if ch==1: if top<mymax: item=input("Enter any elements:") Push(stack,item) top+=1 else: print("Stack overflow") elif ch==2: print(Pop(stack)) elif ch==3: print(stack) else: print("Exit") breakProgram 3from queue import LifoQueuemyStack = LifoQueue()myStack.put('a')print(myStack)myStack.put('b')print(myStack)myStack.put('c')print(myStack) myStack.get()print(myStack)myStack.get()myStack.get_nowait()print(myStack)myStack.get()Program 4class Stack: def __init__(self): self.items = [] def is_empty(self): return self.items == [] def push(self, data): self.items.append(data) def pop(self): return self.items.pop() def display(self): for data in reversed(self.items): print(data) def insert_at_bottom(s, data): if s.is_empty(): s.push(data) else: popped = s.pop() insert_at_bottom(s, data) s.push(popped) def reverse_stack(s): if not s.is_empty(): popped = s.pop() reverse_stack(s) insert_at_bottom(s, popped) s = Stack()data_list = input('Please enter the elements to push: ').split()for data in data_list: s.push(int(data)) print('The stack:')s.display()reverse_stack(s)print('After reversing:')s.display()Program 5class Stack: def __init__(self): self.items = [] def is_empty(self): return self.items == [] def push(self, data): self.items.append(data) def pop(self): return self.items.pop() def display(self): for data in reversed(self.items): print(data) def insert_at_bottom(s, data): if s.is_empty(): s.push(data) else: popped = s.pop() insert_at_bottom(s, data) s.push(popped) def reverse_stack(s): if not s.is_empty(): popped = s.pop() reverse_stack(s) insert_at_bottom(s, popped) s = Stack()data_list = input('Please enter the elements to push: ').split()for data in data_list: s.push(int(data)) print('The stack:')s.display()reverse_stack(s)print('After reversing:')s.display()Program 6front=0rear=0mymax=eval(input("Enter maximum size of queue:"))def createQueue(): queue=[] return queuedef isEmpty(queue): return len(queue)==0def enqueue(queue,item): queue.append(item) print("Enqueued to queue",item)def dequeue(queue): if isEmpty(queue): return "Queue is empty" item=queue[0] del queue[0] return itemqueue=createQueue()while True: print("1.Enqueue") print("2.Dequeue") print("3.Display") print("4.Quit") ch=int(input("Enter your choice:")) if ch==1: if rear<mymax: item=input("Enter any elements:") enqueue(queue,item) rear+=1 else: print("Queue is full") elif ch==2: print(dequeue(queue)) elif ch==3: print(queue) else: print("Exit") breakProgram 7# Python code to demonstrate Implementing, Queue using deque and list from collections import deque queue = deque(["Ram", "Shakshi", "Tejas", "Parth"]) print("Element is queue are", queue) queue.append("Ankit") print("Afeter adding new elements queue is ",queue) queue.append("SAGE") print("Afeter adding new elements queue is ",queue) print("Afeter deleting elements queue is ",queue.popleft()) print("Afeter deleting elements queue is ", queue.popleft()) print("elements queue are ",queue)Program 8# Input Parameterstotal_time = int(input("Enter time for simulation (Hours): "))IAT_rate = int(input("Enter Job Arrival Rate (/Hour): "))ST_rate = int(input("Enter Job Service Rate (/Hour): "))rho = IAT_rate/ST_rate# Initialize Parametersqu = queue.Queue()curr_process = NoneIAT = []ST = []AT = []wait_time = []server_busy = Falselist_wait = []list_delay = []num_processes = int(np.random.poisson(IAT_rate)* total_time)num_processes_served = 0# Populate Inter-Arrival-Times (IAT)for i in range(num_processes): temp = np.random.exponential(1/IAT_rate)*60*60 if i==0: IAT.append(0) else: IAT.append(int(temp - temp%1)) # Populate Service-Times (ST) (where ST[i]!=0)while not len(ST) == num_processes: temp = np.random.exponential(1/ST_rate)*60*60 if not int(temp- temp%1)<1: ST.append(int(temp - temp%1))# Save a copy of STST_copy = copy.deepcopy(ST)# Get Arrival-Times (AT) from IAT starting at t=0# and initialize Waiting-Times to 0for i in range(num_processes): if i == 0: AT.append(0) else: AT.append(AT[i-1] + IAT[i]) wait_time.append(0)# Simulation of M/M/1 Queue (i represents current time)for i in range(total_time*60*60): if server_busy: for item in list(qu.queue): wait_time[item] = wait_time[item] + 1 ST[curr_process] = ST[curr_process] - 1 if ST[curr_process] == 0: server_busy = False num_processes_served = num_processes_served + 1 for j in range(num_processes): if i== AT[j]: qu.put(j) if not server_busy and not qu.empty(): curr_process = qu.get() server_busy = True sum_wait = 0 sum_delay = 0 for i in range(num_processes_served): sum_wait = sum_wait + wait_time[i] sum_delay = sum_delay + wait_time[i] + ST_copy[i] if num_processes_served == 0: list_wait.append(0) list_delay.append(0) else: list_wait.append(sum_wait/(num_processes_served*60*60)) list_delay.append(sum_delay/(num_processes_served*60*60))plt.plot([i+1 for i in range(total_time*60*60)], list_wait)plt.ylabel("Avg Wait Times")plt.show()plt.plot([i+1 for i in range(total_time*60*60)], list_delay)plt.ylabel("Avg Delay Times")plt.show()Program 9class Stack: def __init__(self): self.stack = [] def add(self, dataval):# Use list append method to add element if dataval not in self.stack: self.stack.append(dataval) return True else: return False# Use peek to look at the top of the stack def peek(self): return self.stack[-1]AStack = Stack()AStack.add("Mon")AStack.add("Tue")AStack.peek()print(AStack.peek())AStack.add("Wed")AStack.add("Thu")print(AStack.peek())Program 10class Stack: def __init__(self): self.stack = [] def add(self, dataval):# Use list append method to add element if dataval not in self.stack: self.stack.append(dataval) return True else: return FalseProgram 11# Use list pop method to remove element def remove(self): if len(self.stack) <= 0: return ("No element in the Stack") else: return self.stack.pop()AStack = Stack()AStack.add("Mon")AStack.add("Tue")AStack.add("Wed")AStack.add("Thu")print(AStack.remove())print(AStack.remove())Program 12from array import *array_num = array('i', [1, 3, 5, 7, 9])print("Original array: "+str(array_num))print("Current memory address and the length in elements of the buffer: "+str(array_num.buffer_info()))print("The size of the memory buffer in bytes: "+str(array_num.buffer_info()[1] * array_num.itemsize))Program 13#Create a linked list and Insert a new node in linked list at begining(UKL@SAGE)class Node: def __init__(self, dataval=None): self.dataval = dataval self.nextval = Noneclass SLinkedList: def __init__(self): self.headval = None# Print the linked list def listprint(self): printval = self.headval while printval is not None: print (printval.dataval) printval = printval.nextval def AtBegining(self,newdata): NewNode = Node(newdata)# Update the new nodes next val to existing node NewNode.nextval = self.headval self.headval = NewNodelist = SLinkedList()list.headval = Node("Mon")e2 = Node("Tue")e3 = Node("Wed")list.headval.nextval = e2e2.nextval = e3list.AtBegining("Sun")list.listprint()Program 14#Create a linked list and Insert a new node in linked list at END of LL (UKL@SAGE)class Node: def __init__(self, dataval=None): self.dataval = dataval self.nextval = Noneclass SLinkedList: def __init__(self): self.headval = None# Function to add newnode def AtEnd(self, newdata): NewNode = Node(newdata) if self.headval is None: self.headval = NewNode return laste = self.headval while(laste.nextval): laste = laste.nextval laste.nextval=NewNode# Print the linked list def listprint(self): printval = self.headval while printval is not None: print (printval.dataval) printval = printval.nextvallist = SLinkedList()list.headval = Node("Mon")e2 = Node("Tue")e3 = Node("Wed")list.headval.nextval = e2e2.nextval = e3list.AtEnd("Thu")list.listprint()Program 15#Create a linked list and traverse a linked list (UKL@SAGE)class Node: def __init__(self, dataval=None): self.dataval = dataval self.nextval = Noneclass SLinkedList: def __init__(self): self.headval = None def listprint(self): printval = self.headval while printval is not None: print (printval.dataval) printval = printval.nextvallist1 = SLinkedList()list1.headval = Node("Mon")list1.listprint()e2 = Node("Tue")e3 = Node("Wed")# Link first Node to second nodelist1.headval.nextval = e2list1.listprint()# Link second Node to third nodee2.nextval = e3list1.listprint()Program 16class CircularQueue: #Constructor def __init__(self): self.queue = list() self.head = 0 self.tail = 0 self.maxSize = 8 #Adding elements to the queue def enqueue(self,data): if self.size() == self.maxSize-1: return ("Queue Full!") self.queue.append(data) self.tail = (self.tail + 1) % self.maxSize return True #Removing elements from the queue def dequeue(self): if self.size()==0: return ("Queue Empty!") data = self.queue[self.head] self.head = (self.head + 1) % self.maxSize return data #Calculating the size of the queue def size(self): if self.tail>=self.head: return (self.tail-self.head) return (self.maxSize - (self.head-self.tail))q = CircularQueue()print(q.enqueue(1))print(q.enqueue(2))print(q.enqueue(3))print(q.enqueue(4))print(q.enqueue(5))print(q.enqueue(6))print(q.enqueue(7))print(q.enqueue(8))print(q.enqueue(9))print(q.dequeue())print(q.dequeue())print(q.dequeue())print(q.dequeue())print(q.dequeue())print(q.dequeue())print(q.dequeue())print(q.dequeue())print(q.dequeue()) ................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download