amortized constant-time