nakka soft world !
[C++] 간단한 Circular Queue 본문
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
'프로그래밍언어 > C++' 카테고리의 다른 글
[IT] bitbake "but no providers found in RDEPENDS_managerxxx" 에러 (0) | 2021.03.31 |
---|---|
[IT] Bitbake not found (try using -rpath or -rpath-link) 에러 (0) | 2021.03.31 |
[MFC] CString <-> string (0) | 2017.04.27 |
C++ 파일 입출력 (0) | 2017.03.27 |
iostream, cin (0) | 2017.03.27 |
Comments