Question

In: Computer Science

Write a program that uses linked lists in order to support the following operations: 1. PUSH...

Write a program that uses linked lists in order to support the following operations:

1. PUSH (S, x) - pushes a value x into a stack S

2. POP (S, i) - gets a number i (positive integer) and pops i numbers of S. If S contains less than i values, the operation is impossible to execute (program prints ERROR in this case – see below).

3. REVERSE (S) - reverse the order of the elements in S (you might want to apply recursion). If, for example, S is a stack and x was the last inserted, from now on x is treated as the first inserted element.

4. QUEUE (S) - declares that from this moment S becomes and acts like a queue. Nothing is printed after this operation.

5. ENQUEUE(S, x) - adds x to a queue

6. DEQUEUE(S) - removes element when S is a queue.

7. STACK(S) - makes S into a stack. Nothing is printed after this operation is executed.

8. AVERAGE(S) - returns the average of the numbers in S The program reads a sequence of strings, names of the operations, and additional value (when required).

The program prints the values in S after each operation is executed unless it’s stated otherwise. If S is empty, program prints EMPTY. The program prints ERROR in case and the operation is impossible to execute. Assume, the program starts with empty stack. Assume, the values are positive integers. The program ends when the string END is entered. Assume, the operation AVERAGE returns 0.0 if S is empty. For every operation the program must state its running time – write this in comments. Each important statement in your program must be documented in comments.

Example 1: Input:

AVERAGE

PUSH 4

PUSH 5

PUSH 7

PUSH 9

POP 2

PUSH 11

PUSH 6

REVERSE

Solutions

Expert Solution

SOLUTION:

below here is the python code of your problem

class Stack: //Class stack
def _init_(self):
self.items = []
def isEmpty(self):
return self.items == []
def push(self,item): //Push(S, x)
self.items.append(item)
return self.items
def pop(self): //Pop(S, i)
if self.items == []:
return 0
self.items.pop()
def peek(self):
if self.items == []:
return 0
return self.items[len(self.items) - 1]
def size(self):
return len(self.items)

def getStackItems(self): // STACK(S)
return self.items

def reverse(string): //Reverse(S)
stack = Stack()
ls = []
newstr = ""
for i in string:
stack.push(i)
ls = stack.getStackItems()
for j in range(len(ls)):
newstr += ls.pop()
print(newstr)

reverse("testing")

class Queue: //Queue Implementation
def _init_(self):
self.items=[]
def enqueue(self,item): //ENQUEUE(S, x)
self.items.insert(0,item)
def dequeue(self): //DEQUEUE(S)
if(not self.isEmpty()):
return self.items.pop()
def isEmpty(self):
return self.items==[]
def size(self):
return len(self.items)

All operations are O(1)

**Fell free to ask any queries in the comment section. I am happy to help you. if you like our work, please give Thumbs up**


Related Solutions

In this Java program you will implement your own doubly linked lists. Implement the following operations...
In this Java program you will implement your own doubly linked lists. Implement the following operations that Java7 LinkedLists have. 1. public DList() This creates the empty list 2. public void addFirst(String element) adds the element to the front of the list 3. public void addLast(String element) adds the element to the end of the list 4. public String getFirst() 5. public String getLast() 6. public String removeLast() removes & returns the last element of the list. 7. public String...
Java Write a menu driven program that implements the following linked list operations : INSERT (at...
Java Write a menu driven program that implements the following linked list operations : INSERT (at the beginning) INSERT_ALPHA (in alphabetical order) DELETE (Identify by contents, i.e. "John", not #3) COUNT CLEAR
Can you write a program for the card game WAR using linked lists in c++!
Can you write a program for the card game WAR using linked lists in c++!
Please include comments on what you are doing.   Using linked lists, write a Python program that...
Please include comments on what you are doing.   Using linked lists, write a Python program that performs the following tasks: store the records for each college found in the input file - colleges.csv - into a linked list. (File includes name and state data fields) allow the user to search the linked list for a college’s name; display a message indicating whether or not the college’s name was in the database allow the user to enter a state's name and...
Can you write a program for snakes and ladder board game using linked lists in c++
Can you write a program for snakes and ladder board game using linked lists in c++
Write a menu driven Java program which uses a method for each of the following operations:...
Write a menu driven Java program which uses a method for each of the following operations: (Note : The user should be allowed to repeat the operations as long as he wants to. Use appropriate number of parameters and return type for each method.) A. to find the sum of the following series (up to N terms). The program should    display the terms:              22 + 42 + 62… For example, if N=4, then the program should display the following...
Create a Linked List and conduct the following operations. Portion of the program is given. The...
Create a Linked List and conduct the following operations. Portion of the program is given. The operations are: Add an “H” to the list Add an “I” to the list Add 100 to the list Print the content of the list and its size Add a “H” to the first place of the list Add a “R” to the last place of the list Get the element of position 3 and print it Get the last element and print it...
c++ Write a program that displays the status of an order. a) Program uses 2 functions...
c++ Write a program that displays the status of an order. a) Program uses 2 functions (in addition to main ()). b) The first function asks the user for the data below and stores the input values in reference parameters. c) Input data from user: # of spools ordered, # of spools in stock, any special shipping & handling charges over and above the $10 rate. d) The second function receives as arguments any values needed to compute and display...
**JAVA** Create a Linked List and conduct the following operations. Portion of the program is given....
**JAVA** Create a Linked List and conduct the following operations. Portion of the program is given. The operations are: Add an “H” to the list Add an “I” to the list Add “100” to the list Print the content of the list and its size Add a “H” to the first place of the list Add a “R” to the last place of the list Get the element of position 3 and print it Get the last element and print...
Write a recursive function in C++ that creates a copy of an array of linked lists....
Write a recursive function in C++ that creates a copy of an array of linked lists. Assuming: struct node { int data; node * next; }; class arrayList { public: arrayList(); ~arrayList(); private: node ** head; int size; //(this can equal 10) }
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT