package Ġme . byte beats . algo . kt . design Ċ Ċ /** Ċ Ġ* Ġ@ Author Ġbyte beats Ċ Ġ* Ġ@ Email Ġ< happy ch in ap c @ gmail . com > Ċ Ġ* Ġ@ Github Ġhttps :// github . com / byte beats Ċ Ġ* Ġ@ Created Ġon Ġ 2 0 2 1 / 4 / 4 Ġ 1 9 : 1 1 Ċ Ġ* Ġ@ Version Ġ 1 . 0 Ċ Ġ* Ġ@ Description ĠTO - DO Ċ Ġ*/ Ċ Ċ class ĠMy Circular Queue 1 ( val Ġk : ĠInt ) Ġ{// 6 2 2 ĊĠĠĠ Ġprivate Ġvar Ġhead Idx Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġvar Ġcount Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġval Ġqueue Ġ= ĠInt Array ( k ) ĊĊĠĠĠ Ġfun Ġen Queue ( value : ĠInt ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( count Ġ== Ġk ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġqueue [( head Idx Ġ+ Ġcount ) Ġ% Ġk ] Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġcount ++ ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġde Queue (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( count Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġhead Idx Ġ= Ġ( head Idx Ġ+ Ġ 1 ) Ġ% Ġk ĊĠĠĠĠĠĠĠ Ġcount -- ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠFront (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( count Ġ== Ġ 0 ) Ġreturn Ġ- 1 ĊĠĠĠĠĠĠĠ Ġreturn Ġqueue [ head Idx ] ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠRe ar (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( count Ġ== Ġ 0 ) Ġreturn Ġ- 1 ĊĠĠĠĠĠĠĠ Ġreturn Ġqueue [( head Idx Ġ+ Ġcount Ġ- Ġ 1 ) Ġ% Ġk ] ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠisEmpty (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġcount Ġ== Ġ 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġis Full (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġcount Ġ== Ġk ĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ class ĠMy Circular Queue 2 ( val Ġk : ĠInt ) Ġ{// 6 2 2 ĊĠĠĠ Ġprivate Ġvar Ġcount Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġvar Ġhead : ĠNode ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġtail : ĠNode ? Ġ= Ġnull ĊĊĠĠĠ Ġfun Ġen Queue ( value : ĠInt ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( count Ġ== Ġk ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġnode Ġ= ĠNode ( value ) ĊĠĠĠĠĠĠĠ Ġif Ġ( count Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhead Ġ= Ġnode ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtail Ġ= Ġnode ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtail ?. next Ġ= Ġnode ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtail Ġ= Ġnode ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcount ++ ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġde Queue (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( count Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġhead Ġ= Ġhead ?. next ĊĠĠĠĠĠĠĠ Ġcount -- ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠFront (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( count Ġ== Ġ 0 ) Ġreturn Ġ- 1 ĊĠĠĠĠĠĠĠ Ġreturn Ġhead ?. value Ġ?: Ġ- 1 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠRe ar (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( count Ġ== Ġ 0 ) Ġreturn Ġ- 1 ĊĠĠĠĠĠĠĠ Ġreturn Ġtail ?. value Ġ?: Ġ- 1 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠisEmpty (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġcount Ġ== Ġ 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġis Full (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġcount Ġ== Ġk ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġclass ĠNode ( val Ġvalue : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġnext : ĠNode ? Ġ= Ġnull ĊĠĠĠ Ġ} Ċ Ċ }