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
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...
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...
**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) }
Program must be in C++! Write a program which: Write a program which uses the following...
Program must be in C++! Write a program which: Write a program which uses the following arrays: empID: An array of 7 integers to hold employee identification numbers. The array should be initialized with the following values: 1, 2, 3, 4, 5, 6, 7. Hours: an array of seven integers to hold the number of hours worked by each employee. payRate: an array of seven doubles to hold each employee’s hourly pay rate. Wages: an array of seven doubles to...
Write a C Program that uses file handling operations of C language. The Program should perform...
Write a C Program that uses file handling operations of C language. The Program should perform following operations: 1. The program should accept student names and students’ assignment marks from the user. 2. Values accepted from the user should get saved in a .csv file (.csv files are “comma separated value” files, that can be opened with spreadsheet applications like MS-Excel and also with a normal text editor like Notepad). You should be able to open and view this file...
In order to practice on Linked Lists, you will implement one from scratch which will allow...
In order to practice on Linked Lists, you will implement one from scratch which will allow you to examine how they work and explore their capabilities and limitations. You will build a doubly-circular linked list. In doubly linked lists, each node in the list has a pointer to the next node and the previous node. In circular linked lists, the tail node’s next pointer refers to the head and the head node’s previous pointer refers to the tail rather than...
1.Please write a C++ program that counts the nodes in a linked list with the first...
1.Please write a C++ program that counts the nodes in a linked list with the first node pointed to by first. Also please explain. 2. Write a program to determine the average of a linked list of real numbers with the first node pointed to by first. 3. Determine the computing times of the algorithms in question 1 and 4. Write a program to insert a new node into a linked list with the first node pointed to by first...
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT