package Ġcom . jo yt an . rec . data Ċ Ċ /** Ċ Ġ* Ġ ä¸Ģå®ļ ãĤµ ãĤ¤ãĤº ãĤĴ è¶ħ ãģĪ ãģªãģĦ ãĤŃãĥ¥ ãĥ¼ ãĢĤ Ċ Ġ* Ġ@ param Ġcapacity ĠãĤ Ń ãĥ£ ãĥĳ ãĤ· ãĥĨãĤ£ Ċ Ġ* Ġ@ param Ġdef Val Ġãĥĩ ãĥķãĤ© ãĥ« ãĥĪ åĢ¤ Ċ Ġ*/ Ċ class ĠStatic Queue < T >( ĊĠĠĠĠĠĠĠ Ġval Ġcapacity : ĠInt , Ġval Ġdef Val : ĠT ) Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġoffset : ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġvar Ġarray Ġ= Ġmutable ListOf < T >() ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠãĤµ ãĤ¤ãĤº ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġsize : ĠInt Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġprivate Ġset ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġinit () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit () Ġ{ ĊĠĠĠĠĠĠĠ Ġarray Ġ= Ġmutable ListOf () ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġcapacity ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġarray . add ( def Val ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġoffset Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġsize Ġ= Ġ 0 ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ ãĤ¯ãĥª ãĤ¢ ãģĻãĤĭ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġclear () Ġ{ ĊĠĠĠĠĠĠĠ Ġinit () ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ è¦ģ ç´ł ãĤĴ è¿½åĬł ãģĻãĤĭ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġadd ( v : ĠT ) Ġ{ ĊĠĠĠĠĠĠĠ Ġarray [ offset ] Ġ= Ġv ĊĠĠĠĠĠĠĠ Ġ++ offset ĊĠĠĠĠĠĠĠ Ġif Ġ( size Ġ< Ġcapacity ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ++ size ĊĠĠĠĠĠĠĠ Ġif Ġ( capacity Ġ<= Ġoffset ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoffset Ġ= Ġ 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ åĢ¤ ãĤĴåıĸå¾Ĺ ãģĻãĤĭ ãĢĤ ãĤ¤ãĥ³ ãĥĩ ãĥĥãĤ¯ãĤ¹ ãģĮ å¤§ ãģį ãģĦ æĸ¹ ãģĮ åı¤ ãģĦ ãĢĤ ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġi ĊĠĠĠĠ Ġ* Ġ@ return ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoperator Ġfun Ġget ( i : ĠInt ): ĠT Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġindex Ġ= Ġoffset Ġ- Ġi Ġ- Ġ 1 ĊĠĠĠĠĠĠĠ Ġif Ġ( index Ġ< Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġindex Ġ+= Ġarray . size ĊĠĠĠĠĠĠĠ Ġreturn Ġarray [ index ] ĊĠĠĠ Ġ} ĊĊ Ċ } Ċ