사용자 도구

사이트 도구


알고리즘:queue

Queue

  • void initQueue();
  • void pop();
  • void push(data);
  • int front();
  • int back();
  • int size();
  • int empty();

| queue
#define MAXN ((int)1e5 + 10) // 100,000 + 10
int queue[MAXN];
int rp;  // 읽을 위치
int wp;  // 쓸 위치
int savecnt; // 현재 개수
 
void initQueue() {
  rp = wp = savecnt = 0;
}
 
void pop() {
  rp++;
  if(rp >= MAXN) rp = 0;
  savecnt--;
}
 
void push(int value) {
  queue[wp++] = value;
  if(wp >= MAXN) wp = 0;
  savecnt++;
}
 
int front() {
  return queue[rp];
}
 
int back() {
  int idx = wp - 1;
  if(idx < 0) idx = MAXN - 1;
  return queue[idx];
}
 
int size() {
  return savecnt;
}
 
int empty() {
  return savecnt == 0;
}
알고리즘/queue.txt · 마지막으로 수정됨: 2019/10/15 14:46 저자 trsprs