Exemplo n.º 1
0
func New(a Any) *Imp {
	//
	x := new(Imp)
	x.object = Clone(a)
	x.anchor = heap.New()
	return x
}
Exemplo n.º 2
0
func (x *Imp) Del() Any {
	//
	if x.num == 0 {
		return nil
	}
	if x.num == 1 {
		a := x.anchor.Get()
		x.anchor = heap.New()
		x.num = 0
		return a
	}
	y, a := x.anchor.Del(x.num)
	x.anchor = y.(*heap.Imp)
	x.num--
	if x.num > 0 {
		x.anchor.Sift(x.num)
	}
	return a
}