Sounds like a "circular buffer" to me.
struct {int _RPM; int _MPH;} Entries[4];
byte BufferPointer;
void addEntry(int RPM, int MPH) {
Entries[BufferPointer].RPM = _RPM;
Entries[BufferPointer].MPH = _MPH;
BufferPointer = (BufferPointer+1) % 4; // Modulo operator to give a 0..3 answer
}
// Entries[BufferPointer] is the oldest entry
// Entries[(BufferPointer+1) %4] is the second-oldest entry
// Entries[(BufferPointer+2) %4] is the third-oldest entry
// Entries[(BufferPointer+3) %4] is the newest entry