Question
DSSL2 DRRACKET write, Constructs an empty ListStack. Construct an empty ListQueue. Enqueue five songs of your choice to the given queue, then return the first
DSSL2 DRRACKET write, Constructs an empty ListStack. Construct an empty ListQueue. Enqueue five songs of your choice to the given queue, then return the first song that should play.
#lang dssl2 #lang dssl2
# HW2: Stacks and Queues
import ring_buffer
interface STACK[T]: def push(self, element: T) -> NoneC def pop(self) -> T def empty?(self) -> bool?
# Defined in the `ring_buffer` library; copied here for reference. # Do not uncomment! or you'll get errors. # interface QUEUE[T]: # def enqueue(self, element: T) -> NoneC # def dequeue(self) -> T # def empty?(self) -> bool?
# Linked-list node struct (implementation detail): struct _cons: let data let next: OrC(_cons?, NoneC)
### ### ListStack ###
class ListStack[T] (STACK):
# Any fields you may need can go here.
# Constructs an empty ListStack. def __init__ (self): pass # ^ YOUR CODE GOES HERE
# Other methods you may need can go here.
test "woefully insufficient": let s = ListStack() s.push(2) assert s.pop() == 2
### ### ListQueue ###
class ListQueue[T] (QUEUE):
# Any fields you may need can go here.
# Constructs an empty ListQueue. def __init__ (self): pass # ^ YOUR CODE GOES HERE
# Other methods you may need can go here.
test "woefully insufficient, part 2": let q = ListQueue() q.enqueue(2) assert q.dequeue() == 2
### ### Playlists ###
struct song: let title: str? let artist: str? let album: str?
# Enqueue five songs of your choice to the given queue, then return the first # song that should play. def fill_playlist (q: QUEUE!): pass # ^ YOUR CODE GOES HERE
test "ListQueue playlist": pass
# To construct a RingBuffer: RingBuffer(capacity) test "RingBuffer playlist": pass
Step 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