[ ^ CSE 341 | section index | <-- previous | next -->]

abstype heap * with emptyheap :: heap * isempty :: heap * -> bool deletemin :: heap * -> * add :: * -> heap * -> heap * heapnode * ::= Nil | HeapNode * (heapnode *) (heapnode *) heap * == heapnode * emptyheap = Nil isempty Nil = True isempty (HeapNode a b c) = False additem item Nil = (HeapNode item Nil Nil) additem item (HeapNode a b c) = (HeapNode (a) (additem item b) (c)) , if a < item = (HeapNode (item) (b) (additem a c)) , otherwise getmin Nil = error "getmin of empty heap" getmin (HeapNode a b c) = a

Last modified: Wed May 17 23:32:46 PDT 2000