package Ġtec nic he Di Program ma zione . stack Ċ Ċ class ĠStack LinkedList < Value > Ġ: ĠStack < Value > Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġhead : ĠNode < Value >? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġcount : ĠInt Ġ= Ġ 0 ĊĊĠĠĠ Ġclass ĠNode < Value >( var Ġnext : ĠNode < Value > ?, Ġvar Ġvalue : ĠValue ) ĊĊĠĠĠ Ġoverride Ġfun Ġpush ( value : ĠValue ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠnewNode : ĠNode < Value > Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNode ( head , Ġvalue ) ĊĠĠĠĠĠĠĠ Ġhead Ġ= ĠnewNode ĊĠĠĠĠĠĠĠ Ġcount ++ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġpop (): ĠValue ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġv Ġ= Ġpeek () ĊĠĠĠĠĠĠĠ Ġif Ġ( isEmpty ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġhead Ġ= Ġhead ?. next ĊĠĠĠĠĠĠĠ Ġcount -- ĊĠĠĠĠĠĠĠ Ġreturn Ġv ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġpeek (): ĠValue ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġhead ?. value ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠisEmpty (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġcount Ġ== Ġ 0 ĊĠĠĠ Ġ} ĊĠĠĠ Ġoverride Ġfun Ġsize () Ġ: ĠInt { ĊĠĠĠĠĠĠĠ Ġreturn Ġcount ĊĠĠĠ Ġ} Ċ Ċ }