public void Push(RewindTime.Information obj) { if (_isEmpty) { _isEmpty = false; _top = _bottom = 0; // Reset to play safe } else { _top = (_top + 1) % _maxSize; if (_bottom == _top) { _bottom = (_bottom + 1) % _maxSize; } } _arr[_top] = obj; }
public RewindTime.Information Pop() { if (_isEmpty) { return(null); } else { RewindTime.Information obj = _arr[_top]; if (_top == _bottom) { _isEmpty = true; } else { if (_top == 0) { _top = _maxSize; } --_top; } return(obj); } }