package Ġalgorithm . data structure . queue Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġy ong ho on Ġon Ġ 2 0 1 7 - 0 5 - 2 6 Ċ Ġ* ĠBlog ĠĠ Ġ: Ġhttp :// blog . pick th . com Ċ Ġ* ĠGithub Ġ: Ġhttps :// github . com / yh - kim Ċ Ġ* ĠMail ĠĠ Ġ: Ġy ong ho on . kim @ pick th . com Ċ Ġ*/ Ċ class ĠBase Queue < T >: ĠQueue < T > Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġdata List : ĠArrayList < T > Ġ= ĠArrayList () ĊĊĠĠĠ Ġoverride Ġfun Ġenqueue ( t : ĠT ): ĠT Ġ{ ĊĠĠĠĠĠĠĠ Ġdata List . add ( t ) ĊĠĠĠĠĠĠĠ Ġreturn Ġt ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġpeek () Ġ= Ġdata List . first OrNull () ĊĊĠĠĠ Ġoverride Ġfun Ġde queue (): ĠT ? Ġ{ ĊĠĠĠĠĠĠĠ Ġif ( size () Ġ== Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĊĠĠĠĠĠĠĠ Ġval ĠgetData Ġ= Ġpeek () ĊĠĠĠĠĠĠĠ Ġdata List . remove At ( 0 ) ĊĊĠĠĠĠĠĠĠ Ġreturn ĠgetData ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġis Full () Ġ= Ġfalse ĊĊĠĠĠ Ġoverride Ġfun Ġsize () Ġ= Ġdata List . size ĊĊĠĠĠ Ġoverride Ġfun ĠisEmpty () Ġ= Ġ( size () Ġ== Ġ 0 ) ĊĊĠĠĠ Ġfun Ġback () Ġ= Ġdata List . last OrNull () Ċ }