11.2 Problem Set 2: PostScript Stack Commands (in python please)
For this assignment you are to implement a PostScript command
interpreter using a Stack. You must implement the stack using a
singly-linked list. Solutions that use a data structure other than
a singly-linked list will received no
credit.
The interpreter must read and execute a string of PostScript
commands based on the following definitions:
1. =
objn objn-1 … obj1 = : objn-1 … obj1
This command removes the topmost object form the stack and
prints it.
class Node():
def __init__(self, value):
pass
class PostScript():
def __init__(self):
pass
def push(self, value):
pass
def pop(self):
pass
def peek(self):
pass
def is_empty(self):
pass
def stack(self):
pass
def exch(self):
pass
def index(self):
pass
def clear(self):
pass
def dup(self):
pass
def equal(self):
pass
def depth(self):
pass
stack = PostScript()
def decode(command_list):
for object in command_list:
if object == '=':
stack.equal()
elif object == 'count':
stack.depth()
elif object == 'clear':
stack.clear()
elif object == 'dup':
stack.dup()
elif object == 'exch':
stack.exch()
elif object == 'index':
stack.index()
elif object == 'pop':
stack.pop()
elif object == 'stack':
stack.stack()
else:
stack.push(object)
command = input()
command_list = command.split()
decode(command_list)
class Node: def __init__(self, initdata): self.data = initdata self.next = None def getData(self): return self.data def getNext(self): return self.next def setNext(self, newnext): self.next = newnext class UnorderedList: def __init__(self): self.head = None self.tail = None self.length = 0 def isEmpty(self): return self.head is None def add(self, item): temp = Node(item) temp.setNext(self.head) self.head = temp if self.tail is None: self.tail = temp self.length += 1 def ssize(self): # This is O(n) current = self.head count = 0 while current is not None: count += 1 current = current.getNext() return count def size(self): # This is O(1) return self.length def search(self, item): current = self.head found = False while current is not None and not found: if current.getData() == item: found = True else: current = current.getNext() return found def remove(self,item): current = self.head previous = None found = False while current is not None and not found: if current.getData() == item: found = True else: previous = current current = current.getNext() if previous == None: # The item is the 1st item self.head = current.getNext() else: if current.getNext() is None: self.tail = previous # in case the current tail is removed previous.setNext(current.getNext()) self.length -= 1 def __str__(self): current = self.head string = '[' while current is not None: string += str(current.getData()) if current.getNext() is not None: string += ', ' current = current.getNext() string += ']' return string def sappend(self, item): # This is O(n) time complexity current = self.head if current: while current.getNext() is not None: current = current.getNext() current.setNext(Node(item)) else: self.head = Node(item) def append(self, item): # This is O(1) time complexity temp = Node(item) last = self.tail if last: last.setNext(temp) else: self.head = temp self.tail = temp self.length += 1 def insert(self, index, item): temp = Node(item) current = self.head previous = None count = 0 found = False if index > self.length-1: raise IndexError('List Index Out Of Range') while current is not None and not found: if count == index: found = True else: previous = current current = current.getNext() count += 1 if previous is None: temp.setNext(self.head) self.head = temp else: temp.setNext(current) previous.setNext(temp) self.length += 1 def index(self, item): pos = 0 current = self.head found = False while current is not None and not found: if current.getData() == item: found = True else: current = current.getNext() pos += 1 if not found: raise ValueError('Value not present in the List') return pos def pop(self, index=None): if index is None: index = self.length-1 if index > self.length-1: raise IndexError('List Index Out Of Range') current = self.head previous = None found = False if current: count = 0 while current.getNext() is not None and not found: if count == index: found = True else: previous = current current = current.getNext() count += 1 if previous is None: self.head = current.getNext() if current.getNext() is None: self.tail = current.getNext() else: self.tail = previous previous.setNext(current.getNext()) self.length -= 1 return current.getData()
11.2 Problem Set 2: PostScript Stack Commands (in python please) For this assignment you are to...
PYTHON please help this is very confusing! THANK YOU! Q5 18 Points In this question, we will implement the DrippingStack class. This is a fixed capacity stack; it's size does not increase or decrease automatically. Capacity of this DrippingStack will be determined during initialization. When push is invoked with the DrippingStack at full capacity, rather than throwing a FullStack exception, a more typical semantic is to accept the pushed element at the top while dripping the oldest element from the...
class Node(object): def __init__(self, data, next=None): self.data = data self.next = next class List(object): def __init__(self): self.head = None self.tail = None Implement the following functions for Linked List in Python and use the constructors above : Copy(lList) Builds and returns a copy of list ItemAt(List,i) Returns the data item at position i in list Pop(List,i=0) Remove item at position i in list. If i is not specified, it removes the first item in list Count(List,x) Returns the number...
QUESTION: ADT stack: resizable array-based implementation for Ch4 programming problem 4 "maintain the stacks's top entry at the end of the array" at array index N-1 where the array is currently allocated to hold up to N entries. MAKE SURE YOU IMPLEMENT the functions: bool isEmpty() const; bool push(const ItemType& newEntry); bool pop(); in ArrayStackP4.cpp //FILE StackInterface.h #ifndef STACK_INTERFACE_ #define STACK_INTERFACE_ template<class ItemType> class StackInterface { public: /** Sees whether this stack is empty. @return True if the...
Task 2: SecretWord class: Download and save a copy of LinkedLists.py (found at the bottom of this assignment page on eClass). In this file, you have been given the complete code for a LinkedList class. Familiarize yourself with this class, noticing that it uses the Node class from Task 1 and is almost identical to the SLinkedList class given in the lectures. However, it also has a complete insert(pos, item) method (which should be similar to the insert method you...
Stack help. I need help with my lab assignment. Complete a method for a class named Palindrome that evaluates a string phrase to determine if the phrase is a palindrome or not. A palindrome is a sequence of characters that reads the same both forward and backward. When comparing the phrase to the same phrase with the characters in reverse order, an uppercase character is considered equivalent to the same character in lowercase, and spaces and punctuation are ignored. The...
This is my assignment in Python. Please help me thank you Design type 1: # Creating an object of the class "Burger" theOrder = Burger() # calling the main method theOrder.main() # And the class is like: class Burger: # You may need to have a constructor def __init__(self): self._orderDict = {} self._priceBeforeTax = 0 self._priceAfterTax = 0 # you may have the tax rate also as an instance variable. But as I mentioned, you can use your # own...
Need help with Intro to Comp Sci 2 (Python) problem: This is what is provided: (Copy/Paste version): from tkinter import Tk, Label, Entry, Button from random import * class Craps(Tk): #set up the main window def __init__(self, parent=None): Tk.__init__(self, parent) self.title('Play Craps') self.new_game() self.make_widgets() #when a new game is started, the firstRoll will start at 0 def new_game(self): self.firstRoll = 0 #create and place the widgets in the window def make_widgets(self): Label(self, text="Die 1").grid(row=0, column=0, columnspan=1) Label(self, text="Die 2").grid(row=0,...
- Complete the code to solve a maze- Discuss related data structures topicsProgramming-----------In this part, you will complete the code to solve a maze.Begin with the "solveMaze.py" starter file.This file contains comment instructions that tell you where to add your code.Each maze resides in a text file (with a .txt extension).The following symbols are used in the mazes:BARRIER = '-' # barrierFINISH = 'F' # finish (goal)OPEN = 'O' # open stepSTART = 'S' # start stepVISITED = '#' #...