import Ġcom . code sample . data structs . basic . Node Ċ import Ġjava . lang . RuntimeException Ċ import Ġjava . lang . StringBuilder Ċ Ċ interface ĠQueue < T > Ġ{ ĊĠĠĠ Ġfun Ġenqueue ( value : ĠT ) ĊĠĠĠ Ġfun Ġde queue (): ĠT Ċ } Ċ Ċ class ĠQueue On Do ub ly LinkedList < T > Ġ: ĠQueue < T > Ġ{ ĊĊĠĠĠ Ġvar Ġhead : ĠNode < T >? Ġ= Ġnull ĊĠĠĠ Ġvar Ġtail : ĠNode < T >? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun Ġenqueue ( value : ĠT ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( tail Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtail Ġ= ĠNode ( value , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhead Ġ= Ġtail ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnew Tail Ġ= ĠNode ( value , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtail !!. next Ġ= Ġnew Tail ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtail Ġ= Ġnew Tail ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġde queue (): ĠT Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( head Ġ== Ġnull ) Ġthrow ĠRuntimeException (" No Ġelements Ġto Ġde queue ") ĊĠĠĠĠĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġold Head Ġ= Ġhead ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalue Ġ= Ġhead !!. value ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhead Ġ= Ġhead !!. next ĊĠĠĠĠĠĠĠĠĠĠĠ Ġold Head !!. next Ġ= Ġnull ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( head ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull Ġ-> Ġ" Queue On Do ub ly LinkedList ( head = null , tail = null , values =[ ]) " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtail Ġ-> Ġ" Queue On Do ub ly LinkedList ( head =${ head !!. value }, tail =${ head !!. value }, values =[ ${ head !!. value } ]) " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstr Builder Ġ= ĠStringBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstr Builder . append (" Queue On Do ub ly LinkedList ( head =${ head !!. value }, tail =${ tail !!. value }, values =[ ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġcurrent Ġ= Ġhead ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( current ?. next Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstr Builder . append ("${ current . value }, ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Ġ= Ġcurrent . next ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstr Builder . append ("${ tail !!. value } ]) ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstr Builder . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ class ĠQueue On Res izing Array < T > Ġ: ĠQueue < T > Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġarray : ĠMutable List < T ?> Ġ= ĠMutable List ( 2 ) Ġ{ Ġnull Ġ} ĊĠĠĠ Ġprivate Ġvar Ġcur Size : ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġvar Ġcur MaxSize : ĠInt Ġ= Ġ 2 ĊĊĊĠĠĠ Ġoverride Ġfun Ġenqueue ( value : ĠT ) Ġ{ ĊĠĠĠĠĠĠĠ ĠTODO (" Not Ġyet Ġimplemented ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġde queue (): ĠT Ġ{ ĊĠĠĠĠĠĠĠ ĠTODO (" Not Ġyet Ġimplemented ") ĊĠĠĠ Ġ} Ċ Ċ } Ċ