Question: Can you help me implement a _min(), _max(), _mean() function that returns the minimum, maximum and mean value of a Linked list? class LinkedQueue: FIFO

Can you help me implement a _min(), _max(), _mean() function that returns the minimum, maximum and mean value of a Linked list?

class LinkedQueue:

"""FIFO queue implementation using a singly linked list for storage."""

#-------------------------- nested _Node class --------------------------

class _Node:

"""Lightweight, nonpublic class for storing a singly linked node."""

__slots__ = '_element', '_next' # streamline memory usage

def __init__(self, element, next):

self._element = element

self._next = next

#------------------------------- queue methods -------------------------------

def __init__(self):

"""Create an empty queue."""

self._head = None

self._tail = None

self._size = 0 # number of queue elements

def __len__(self):

"""Return the number of elements in the queue."""

return self._size

def is_empty(self):

"""Return True if the queue is empty."""

return self._size == 0

def first(self):

"""Return (but do not remove) the element at the front of the queue.

Raise Empty exception if the queue is empty.

"""

if self.is_empty():

print('Queue is empty')

return ""

#raise Empty('Queue is empty')

return self._head._element # front aligned with head of list

def dequeue(self):

"""Remove and return the first element of the queue (i.e., FIFO).

Raise Empty exception if the queue is empty.

"""

if self.is_empty():

print('Queue is empty')

return ""

#raise Empty('Queue is empty')

answer = self._head._element

self._head = self._head._next

self._size -= 1

if self.is_empty(): # special case as queue is empty

self._tail = None # removed head had been the tail

return answer

def enqueue(self, e):

"""Add an element to the back of queue."""

newest = self._Node(e, None) # node will be new tail node

if self.is_empty():

self._head = newest # special case: previously empty

else:

self._tail._next = newest

self._tail = newest # update reference to tail node

self._size += 1

def disp(self): #by XJ

next = self._head

while next != None:

print(next._element)

next = next._next

if __name__ == '__main__':

lQueue = LinkedQueue()

print(lQueue.is_empty())

lQueue.enqueue(1)

lQueue.enqueue(2)

lQueue.enqueue(3)

print(lQueue.is_empty())

lQueue.disp()

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!