Answered step by step
Verified Expert Solution
Question
1 Approved Answer
python3 import numpy as np Define class Queue that implements the ADT (Abstract Data Type) Queue using a circular array. . You must use a
python3
import numpy as np
Define class Queue that implements the ADT (Abstract Data Type) Queue using a circular array. . You must use a np.array for this question: Somewhere in your constructor you must have a line that looks like self.data-np.array...... . . . You must observe the FIFO convention. When implementing a queue, we have to worry about running time for its basic operations: dequeue and enqueue. Both of them must run in Theta(1) Unfortunately, a regular array does not give you desired complexity. Let me explain why: We will assume that front (index) points to the front of a queue, and rear (index) points to the end of a queue, to the next available location Front always stays at 0, and we move rear when we add elements Issue1: Each time when we delete an element from front, we have shift everything to the left: Theta (n) Rear always stays at 0, and we move front when we remove elements. Issue2: Each time we add an element to rear, we have shift everything to the right: Theta(n) Now we move both front and rear to the right when we add/remove an element. This will ensure that the running time is Theta(1) Issue3: Space. Each time we move front and rear to the right, space on the left is not used anymore (Never can get to indices 0, 1, 2): Solution: Wrap front and rear around when reaching the end of the arrayStep by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started