#from bpriorityq import BPriorityQueue as PriorityQueue #from priorityq import PriorityQueue from linkedpriorityq import PriorityQueue items = {'white':0, 'red':3, 'green':1, 'blue':1, \ 'yellow':5, 'black':1, 'brown':2, 'cyan':5, 'purple':4} size = len( items ) colorQ = PriorityQueue() priority_level = 4 # this parameter makes the API consistent, change as needed print( 'test enqueue() ...' ) #for color in items: for color in items: p = items[color] print( 'enqueue item : ', color ) # priority = color priority = p % priority_level colorQ.enqueue( color, priority ) # using color as a priority scheme print() print( 'queue length : ', len ( colorQ ) ) print( 'test peek() : ', colorQ.peek() ) print( 'test dequeue() : remove first ...', colorQ.dequeue() ) print( 'test dequeue() : remove second ...', colorQ.dequeue() ) print( 'test is_empty() : ', colorQ.is_empty() ) print( 'test peek() : ', colorQ.peek() ) print( 'test enqueue( purple ) : ' ) colorQ.enqueue( 'purple', items['purple'] % priority_level ) while colorQ.is_empty() == False: color = colorQ.dequeue() print( 'color : ', color ) print( 'test is_empty() : ', colorQ.is_empty() ) print( 'queue length : ', len ( colorQ ) )