package Ġdata structure Ċ Ċ class ĠMax Heap Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġvalues Ġ= ĠarrayOf Null s < Int >( 1 0 0 ) ĊĊĠĠĠ Ġvar Ġsize : ĠInt Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġprivate Ġset ĊĊĠĠĠ Ġfun Ġadd ( value : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnew Index Ġ= Ġ++ size ĊĠĠĠĠĠĠĠ Ġvalues [ new Index ] Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġre arrange For Insertion From ( new Index ) ĊĠĠĠĠĠĠĠ Ġreturn Ġvalue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġtail rec Ġfun Ġre arrange For Insertion From ( index : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( index Ġ== Ġ 1 ) Ġreturn ĊĠĠĠĠĠĠĠ Ġval Ġparent Index Ġ= Ġparent IndexOf ( index ) ĊĠĠĠĠĠĠĠ Ġval Ġparent Ġ= Ġvalue Of ( parent Index ) ĊĠĠĠĠĠĠĠ Ġval Ġcurrent Ġ= Ġvalue Of ( index ) ĊĠĠĠĠĠĠĠ Ġif Ġ( parent Ġ< Ġcurrent ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġswap ( parent Index , Ġindex ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġre arrange For Insertion From ( parent Index ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdelete (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġrequire ( size Ġ> Ġ 0 ) Ġ{ Ġ" íŀ Ļ ìĿ´ Ġë¹Ħ ìĸ´ ìŀ Ī ìĬµëĭĪëĭ¤ " Ġ} ĊĠĠĠĠĠĠĠ Ġval ĠmaxValue Ġ= Ġvalue Of ( 1 ) ĊĠĠĠĠĠĠĠ Ġvalues [ 1 ] Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġswap ( 1 , Ġsize --) ĊĠĠĠĠĠĠĠ Ġre arrange For Delete From ( 1 ) ĊĠĠĠĠĠĠĠ Ġreturn ĠmaxValue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġtail rec Ġfun Ġre arrange For Delete From ( index : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġleft Index Ġ= Ġleft IndexOf ( index ) ĊĠĠĠĠĠĠĠ Ġval Ġright Index Ġ= Ġright IndexOf ( index ) ĊĠĠĠĠĠĠĠ Ġval Ġcurrent Ġ= Ġvalue Of ( index ) ĊĠĠĠĠĠĠĠ Ġval Ġleft Ġ= Ġvalues [ left Index ] Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġval Ġright Ġ= Ġvalues [ right Index ] Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġif Ġ( left Ġ> Ġcurrent Ġ|| Ġright Ġ> Ġcurrent ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtarget Swap Index Ġ= Ġif Ġ( left Ġ> Ġright ) Ġleft Index Ġelse Ġright Index ĊĠĠĠĠĠĠĠĠĠĠĠ Ġswap ( index , Ġtarget Swap Index ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġre arrange For Delete From ( target Swap Index ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġswap ( i : ĠInt , Ġj : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtemp Ġ= Ġvalues [ i ] ĊĠĠĠĠĠĠĠ Ġvalues [ i ] Ġ= Ġvalues [ j ] ĊĠĠĠĠĠĠĠ Ġvalues [ j ] Ġ= Ġtemp ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġvalue Of ( index : ĠInt ): ĠInt Ġ= Ġvalues [ index ] ĊĠĠĠĠĠĠĠ Ġ?: Ġthrow ĠIllegalStateException ("$ index Ġë²Ī Ġì§ ¸ ìĿĺ Ġê°Ĵ ìĿ´ Ġnull ĠìĿ¼ ĠìĪĺ ĠìĹĨ ìĿĮ ") ĊĊĠĠĠ Ġprivate Ġfun Ġparent IndexOf ( index : ĠInt ): ĠInt Ġ= Ġindex Ġshr Ġ 1 ĊĊĠĠĠ Ġprivate Ġfun Ġleft IndexOf ( index : ĠInt ): ĠInt Ġ= Ġindex Ġshl Ġ 1 ĊĊĠĠĠ Ġprivate Ġfun Ġright IndexOf ( index : ĠInt ): ĠInt Ġ= Ġleft IndexOf ( index ) Ġ+ Ġ 1 ĊĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġvalues . toList (). toString () ĊĠĠĠ Ġ} Ċ } Ċ