nakka soft world !

[C++] 간단한 Circular Queue 본문

프로그래밍언어/C++

[C++] 간단한 Circular Queue

nakka 2019. 5. 8. 19:09
728x90


#define MAX 10000
#define MOD (MAX)

int wp, rp; 
int queue[MAX];
void push(int n){queue[wp] = n; wp = (wp+1) % MOD;}  // Save
int front() {return queue[rp];}  // Read
void pop() {rp = (rp+1) % MOD;}  // Remove
int empty {return rp == wp;} // Compare

 

조금더 빠르게 하기 위해 아래와 같이 사용도 가능

#define MAX (1 << 16) // 2^16 == 65536
#define MOD (MAX-1)

int wp, rp; 
int queue[MAX]; 
void push(int n){queue[wp] = n; wp = (wp+1) & MOD;}   // Save
int front() {return queue[rp];}   // Read
void pop() {rp = (rp+1) & MOD;}  // Remove
int empty {return rp == wp;}  // Compare

 

 

728x90
Comments