:( - + div (* nof items available on page *if then for : - to by - do [ + : [ienda [ - : [ ] [ - : (*move - items from to aone to *dec( mk)for : - to by - do [ : [ + + endc [ : [ ] : [spc [sp :aa : - +kh :false else (*merge pages and bdiscard * [sp : [ : [ ]for : to - do [ + + : [iendb : *ndec( ) : end end end underflowprocedure delete (xintegerapagevar hboolean)(*search and delete key in -tree aif page underflow arisesbalance with adjacent page or mergeh :"page is undersize"*var ilrintegerqpageprocedure del (ppagevar hboolean)var kintegerqpage(*global ar*begin : - : [kpif nil then del(qh)if then underflow(pqp mhend else [kp : [rpa [ : [ ]dec( ) : end end delbegin if nil then : : (*binary search*while do :( +rdiv if < [ikey then : else : + end endif then : else : [ - endif ( ( [rkey xthen (*found*if nil then (* is leaf page*dec( ) : nfor : to - do [ : [ + end else del(qh)if then underflow(aqrhend end else delete(xqh)if then underflow(aqrhend end