1answer.
Ask question
Login Signup
Ask question
All categories
  • English
  • Mathematics
  • Social Studies
  • Business
  • History
  • Health
  • Geography
  • Biology
  • Physics
  • Chemistry
  • Computers and Technology
  • Arts
  • World Languages
  • Spanish
  • French
  • German
  • Advanced Placement (AP)
  • SAT
  • Medicine
  • Law
  • Engineering
MakcuM [25]
3 years ago
11

3. Circular, array-backed queue In the following class, which you are to complete, the backing array will be created and populat

ed with Nones in the __init__ method, and the head and tail indexes set to sentinel values (you shouldn't need to modify __init__). Enqueuing and Dequeuing items will take place at the tail and head, with tail and head tracking the position of the most recently enqueued item and that of the next item to dequeue, respectively. To simplify testing, your implementation should make sure that when dequeuing an item its slot in the array is reset to None, and when the queue is emptied its head and tail attributes should be set to -1.
Computers and Technology
1 answer:
Tanzania [10]3 years ago
7 0

Answer:

#Implementation of Queue class

class Queue

   #Implementation of _init_

   def _init_(self, limit=10):

       #calculate the self.data

       self.data = [None] * limit

       self.head = -1

       self.tail = -1

   #Implementation of enqueue function

   def enqueue(self, val):

       #check self.head - self.tail is equal to 1

       if self.head - self.tail == 1:

           raise NotImplementedError

       #check len(self.data) - 1 is equal to elf.tail

       if len(self.data) - 1 == self.tail and self.head == 0:

           raise NotImplementedError

       #check self.head is equal to -1

       if self.head == -1 and self.tail == -1:

           self.data[0] = val

           self.head = 0

           self.tail = 0

       else:

           #check len(self.data) - 1 is equal to self.tail

           if len(self.data) - 1 == self.tail and self.head != 0:

               self.tail = -1

           self.data[self.tail + 1] = val

           #increment the self.tail value

           self.tail = self.tail + 1

   #Implementation of dequeue method

   def dequeue(self):

       #check self.head is equal to self.tail

       if self.head == self.tail:

           temp = self.head

           self.head = -1

           self.tail = -1

           return self.data[temp]

   

       #check self.head is equal to -1

       if self.head == -1 and self.tail == -1:

           #raise NotImplementedError

          raise NotImplementedError

       #check self.head is not equal to len(self.data)

       if self.head != len(self.data):

           result = self.data[self.head]

           self.data[self.head] = None

           self.head = self.head + 1

       else:

          # resetting head value

           self.head = 0

           result = self.data[self.head]

           self.data[self.head] = None

           self.head = self.head + 1

       return result

   #Implementation of resize method

   def resize(self, newsize):

       #check len(self.data) is less than newsize

       assert (len(self.data) < newsize)

       newdata = [None] * newsize

       head = self.head

       current = self.data[head]

       countValue = 0

       #Iterate the loop

       while current != None:

           newdata[countValue] = current

           countValue += 1

           #check countValue is not equal to 0

           if countValue != 0 and head == self.tail:

               break

           #check head is not equal to

           #len(self.data) - 1

           if head != len(self.data) - 1:

               head = head + 1

               current = self.data[head]

           else:

               head = 0

               current = self.data[head]

     self.data = newdata

       self.head = 0

       self.tail = countValue - 1

   #Implementation of empty method

   def empty(self):

       #check self.head is equal to -1

       # and self.tail is equal to -1

       if self.head == -1 and self.tail == -1:

           return True

       return False

   #Implementation of _bool_() method

   def _bool_(self):            

       return not self.empty()

   #Implementation of _str_() method        

   def _str_(self):

       if not (self):

           return ''

       return ', '.join(str(x) for x in self)

   #Implementation of _repr_ method

   def _repr_(self):

       return str(self)

   #Implementation of _iter_ method

   def _iter_(self):

       head = self.head

       current = self.data[head]

       countValue = 0

       #Iterate the loop

       while current != None:

           yield current

           countValue += 1

           #check countValue is not equal to zero

           #check head is equal to self.tail

           if countValue != 0 and head == self.tail:

               break

           #check head is not equal to len(self.data) - 1

           if head != len(self.data) - 1:

               head = head + 1

               current = self.data[head]

           else:

               head = 0

               current = self.data[head

Explanation:-

Output:

You might be interested in
Which is true about TCP and UDP? Choose two answers.
vichka [17]

Answer:

TCP is a connection-oriented protocol

UDP does not acknowledge a receipt of data

Explanation:

TCP (Transmission Control Protocol) is a protocol to transfer data, this is one of the most important protocols on the entire internet, this method was implemented from the beginning of the network.

UDP (User Datagram Protocol) this is a protocol faster than TCP because this method doesn't establish a connection to sent data, in this case, always sent data, but TCP is more secure than UDP, and for that UDP is used to transfer music or videos, and TCP websites and database.

UDP doesn't need acknowledgment is done by UDP, is only concerned with speed.

7 0
4 years ago
In Python, which comparison operator means "less than or equal to"?
Komok [63]

Answer:

<=

Explanation:

Pretty much the same as in maths

3 0
3 years ago
Read 2 more answers
Darnell is preparing to read A Rocket to the Stars for class. What might he predict based on the title?
liq [111]

Answer:

It is science fiction

Explanation:

Rockets and stars relate to science

8 0
3 years ago
Read 2 more answers
Why is it important to think about the programming language to use?
Sloan [31]
In think is C or B in my opinion
6 0
3 years ago
From the set ( 5 , 7 , 9 , 11 , 13 make the inequality w - 4 &lt; 8 true
Ksenya-84 [330]

Answer:

Explanation:

One group of students did an experiment to study the movement of ocean water. The steps of the experiment are listed below.

Fill a rectangular baking glass dish with water.

Place a plastic bag with ice in the water near the left edge of the dish.

Place a lighted lamp near the left edge of the dish so that its light falls directly on the plastic bag.

Put a few drops of ink in the water.

The student did not observe any circulation of ink in the water as expected because the experiment had a flaw. Which of these statements best describes the flaw in the experiment? (2 points)

Not enough ink was added.

Not enough water was taken.

The dish was too small for the experiment.

The lamp and the ice bag were at the same place.

7 0
4 years ago
Other questions:
  • Henry uploaded the photos of his birthday to a cloud storage system. He feels that it’s a safe option for data storage. His frie
    12·1 answer
  • Please help
    5·2 answers
  • What network setting do i need for a workgroup?
    5·1 answer
  • What pressure will be shown on the high side peessure gauge (ac system on)
    12·1 answer
  • PLEASE HELP, True or False: The term whitespace speaks to the design of a website
    8·2 answers
  • Int a=10 int b=20<br> A=b<br> The new values for a and b are
    11·2 answers
  • In your own words, describe how a network administrator can use the OSI model to isolate a network problem.
    13·1 answer
  • 14. Which of the following is NOT likely to be one of the future development gaming industry?
    7·1 answer
  • How does Shakespeare immediately introduce Tybalt as a menacing character?
    9·1 answer
  • Convert the following denary numbers into binary using 8-bit register:
    6·1 answer
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!