0 n-1
0 n-1 0 n-1
0
n-1
0
n-1
0 n/2 n-1
Kolejka dwustronna
pusta
przesunięcie w lewo
przesunięcie w prawo
początek
koniec początek
koniec
Bufor cykliczny (kolejka cykliczna)
0 1
n-1
pop: x = S[S[0]++];
if (S[0]==n) S[0] = 2;
return x;
push: S[1]++;
if (S[1]==n) S[1] = 2;
S[S[1]] = x;
pop: x = S[S[n]++];
S[n] %= n;
return x;
push: S[ S[n1]=(S[n1]+1)%n ] = x;
n n+1
n1=n+1 (const)
początek
początek koniec
koniec
koniec
koniec
koniec koniec
początek
początek
początek
koniec
początek
koniec
początek
początek
pop
push
koniec
początek
pop
koniec
początek