컴공 일기269
게시글 주소: https://orbi.kr/00071606014
알고리즘 큐로 넘어왔습니다.
알고리즘 문제를 풀기 전에는 늘 그것과 관련된 자료구조를 직접 구현을 해봅니다.
이유야 여러가지 있겠지만, 사고방식을 세부 구현에 맞추다 보면 알고리즘 해법을 조금 더 잘 찾을 수 있거든요.
#include <stdio.h>
#include <stdlib.h>
#define MAX 5
typedef struct CIRCULAR_QUEUE
{
int rear;
int front;
int data[MAX];
}queue;
int is_empty(queue* q)
{
return q->rear == q->front;
}
int is_full(queue* q)
{
return (q->rear+1) % MAX == q->front;
}
void push(queue* q, int pData)
{
if(is_full(q))
{
printf("QUEUE IS FULL!!!\n");
return;
}
q->data[q->rear] = pData;
q->rear = (q->rear + 1) % MAX;
printf("Pushed : %d\n", pData);
}
int pop(queue* q)
{
if(is_empty(q))
{
printf("QUEUE IS EMPTY!!!\n");
return -1;
}
int data = q->data[q->front];
q->front = (q->front + 1) % MAX;
printf("Popped : %d\n", data);
return data;
}
void printQueue(queue* q)
{
int idx = q->front;
while(idx != q->rear)
{
printf("%d ", q->data[idx]);
idx = (idx + 1) % MAX;
}
}
int main()
{
//테스트를 위한 코드
queue* q = (queue*)malloc(sizeof(queue));
q->rear = q->front = 0;
push(q, 10);
push(q, 20);
push(q, 30);
push(q, 40);
//error
push(q, 50);
printQueue(q);
printf("\n");
pop(q);
pop(q);
pop(q);
pop(q);
//error
pop(q);
}
0 XDK (+0)
유익한 글을 읽었다면 작성자에게 XDK를 선물하세요.
-
어디가 더 앞서고 있음?
-
여자친구 구해요
-
작년까진 이런저런 무리에 다 같이 들어가서 노는 분위기였는데 과 특성성...
-
사실 1트가 고점이었다 같은 끔찍한 결과는 아니겠지 20렙 찍을거야
-
문제만들고 공모전에 콴다 돌렸는데 비슷한 문제 있길래 그냥 여기 풀게요 난이도는...
-
윤석열 레전드 0
제목어그로 니게tv 개국 96일차
-
경한하고싶다 3
경한이외에대학은사람들이모른다는거야……. 경희대 다녀요!!라고 하고싶다
-
오늘의 저녁은 7
잔치국수에 동태전을 냠냠 나 요리 재능 있는듯
-
그냥 여기든 다른 커뮤든 외대랑 건대가 항상 비교되는거 같아서 물어봄 외대가...
-
25학년도 수능 영어 21번 문항 기출분석 | 상세한 해설과 풀이 0
건축과 그림자를 쫓는 사람들 1. 핵심요약 이 글은 로마 제국 시절 건축가의 사회적...
-
나도 질문해주 1
https://orbi.kr/00071605515/%EC%A7%88%EB%B0%9B%...
-
4세트 끝났엉ㅓㅇ 집갈거야 띠발ㅗㅗㅗㅗㅗㅗㅗ
-
41111 연대랑 14111 연대가 다르게 느껴지는건 26
나도수악우월주의에빠져있기때문이려나 이러면 안되는데
-
첫트에 바로 60점 나오긴 했는데 그 뒤로도 계속 60점대만 나오다가 겨우 70점 찍음 ㅋㅋㅋ
-
오늘은 바쁘네요 3
집 가자마자 짐 싸서 본가 내려가야해요 정신이 없는
-
오우석씨제발장학퍼주세요
-
만약 생명과학 표점으로 45나온거랑 생명과학2 표점으로 45나온거랑 서울대 지원할땐...
-
도저히 비는 더 오지를 않네 내 마음을 봐봐, 철창살은 이제 없는데 아직도 아무도...
첫번째 댓글의 주인공이 되어보세요.