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 : 3 6 Ċ Ġ* Ġ@ Version Ġ 1 . 0 Ċ Ġ* Ġ@ Description ĠTO - DO Ċ Ġ*/ Ċ Ċ class ĠMy Circular Deque ( val Ġk : ĠInt ) Ġ{// 6 4 1 ĊĠĠĠ Ġprivate Ġval Ġhead Ġ= ĠNode (- 1 ) ĊĠĠĠ Ġprivate Ġval Ġtail Ġ= ĠNode (- 1 ) ĊĠĠĠ Ġprivate Ġvar Ġcount Ġ= Ġ 0 ĊĊĠĠĠ Ġ/** ĠInitialize Ġyour Ġdata Ġstructure Ġhere . ĠSet Ġthe Ġsize Ġof Ġthe Ġdeque Ġto Ġbe Ġk . Ġ*/ ĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġhead . next Ġ= Ġtail ĊĠĠĠĠĠĠĠ Ġtail . pre Ġ= Ġhead ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĠAdds Ġan Ġitem Ġat Ġthe Ġfront Ġof ĠDe que . ĠReturn Ġtrue Ġif Ġthe Ġoperation Ġis Ġsuccessful . Ġ*/ ĊĠĠĠ Ġfun Ġinsert Front ( value : ĠInt ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( is Full ()) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġval Ġnode Ġ= ĠNode ( value ) ĊĠĠĠĠĠĠĠ Ġval Ġnext Ġ= Ġhead . next ĊĠĠĠĠĠĠĠ Ġhead . next Ġ= Ġnode ĊĠĠĠĠĠĠĠ Ġnode . next Ġ= Ġnext ĊĠĠĠĠĠĠĠ Ġnode . pre Ġ= Ġhead ĊĠĠĠĠĠĠĠ Ġnext ?. pre Ġ= Ġnode ĊĠĠĠĠĠĠĠ Ġcount ++ ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĠAdds Ġan Ġitem Ġat Ġthe Ġrear Ġof ĠDe que . ĠReturn Ġtrue Ġif Ġthe Ġoperation Ġis Ġsuccessful . Ġ*/ ĊĠĠĠ Ġfun Ġinsert Last ( value : ĠInt ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( is Full ()) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġval Ġnode Ġ= ĠNode ( value ) ĊĠĠĠĠĠĠĠ Ġval Ġpre Ġ= Ġtail . pre ĊĠĠĠĠĠĠĠ Ġpre ?. next Ġ= Ġnode ĊĠĠĠĠĠĠĠ Ġnode . next Ġ= Ġtail ĊĠĠĠĠĠĠĠ Ġtail . pre Ġ= Ġnode ĊĠĠĠĠĠĠĠ Ġnode . pre Ġ= Ġpre ĊĠĠĠĠĠĠĠ Ġcount ++ ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĠDeletes Ġan Ġitem Ġfrom Ġthe Ġfront Ġof ĠDe que . ĠReturn Ġtrue Ġif Ġthe Ġoperation Ġis Ġsuccessful . Ġ*/ ĊĠĠĠ Ġfun Ġdelete Front (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( isEmpty ()) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġval Ġnext Next Ġ= Ġhead . next ?. next ĊĠĠĠĠĠĠĠ Ġhead . next Ġ= Ġnext Next ĊĠĠĠĠĠĠĠ Ġnext Next ?. pre Ġ= Ġhead ĊĠĠĠĠĠĠĠ Ġcount -- ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĠDeletes Ġan Ġitem Ġfrom Ġthe Ġrear Ġof ĠDe que . ĠReturn Ġtrue Ġif Ġthe Ġoperation Ġis Ġsuccessful . Ġ*/ ĊĠĠĠ Ġfun Ġdelete Last (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( isEmpty ()) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġval Ġpre Pre Ġ= Ġtail . pre ?. pre ĊĠĠĠĠĠĠĠ Ġpre Pre ?. next Ġ= Ġtail ĊĠĠĠĠĠĠĠ Ġtail . pre Ġ= Ġpre Pre ĊĠĠĠĠĠĠĠ Ġcount -- ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĠGet Ġthe Ġfront Ġitem Ġfrom Ġthe Ġdeque . Ġ*/ ĊĠĠĠ Ġfun Ġget Front (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( isEmpty ()) Ġreturn Ġ- 1 ĊĠĠĠĠĠĠĠ Ġreturn Ġhead . next ?. value Ġ?: Ġ- 1 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĠGet Ġthe Ġlast Ġitem Ġfrom Ġthe Ġdeque . Ġ*/ ĊĠĠĠ Ġfun Ġget Re ar (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( isEmpty ()) Ġreturn Ġ- 1 ĊĠĠĠĠĠĠĠ Ġreturn Ġtail . pre ?. value Ġ?: Ġ- 1 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĠChecks Ġwhether Ġthe Ġcircular Ġdeque Ġis Ġempty Ġor Ġnot . Ġ*/ ĊĠĠĠ Ġfun ĠisEmpty (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġcount Ġ== Ġ 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĠChecks Ġwhether Ġthe Ġcircular Ġdeque Ġis Ġfull Ġor Ġnot . Ġ*/ ĊĠĠĠ Ġfun Ġis Full (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġcount Ġ== Ġk ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġclass ĠNode ( val Ġvalue : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġnext : ĠNode ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġvar Ġpre : ĠNode ? Ġ= Ġnull ĊĠĠĠ Ġ} Ċ Ċ }