컴공 일기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를 선물하세요.
-
3모 현장 수학 후기 8 0
아니 근데 21 실수할만한거 빼고 틀릴게 없었지 않나요. 물론 저도 실수가...
-
어디가서 서강대다닌다하면 학벌로 무시당할일 업죠 11 5
현실적으로 서강대 인문대 다닌다고 하면 무시할사람없겟죠
-
범바오 신발끈은 안쓰지만 이건 씁니다하고 가르치는게 0 1
신발끈 공식 아님? 아니 ㅋㅋㅋ 좌표로 넓이 구하는게 신발끈이잖아...
-
해린좌....완패를 인정합니다 12 4
국어 72점 3등급(10월 87점 2등급) 수학 69점 2등급(10월 84점...
-
나 이거 밝혀지면 저격먹어도 할 말 없음
-
대충하는 고2 3모 성적 ㅇㅈ 11 1
담임선생님께 오엠알 검사 결과 여쭤봤었음 근데 수학이 2점...
-
킬러 정책 때문에 오지훈쌤 수업내용 작년이랑 뭐 달라지신거 있나요? 작년...
-
오늘 3모였군요 11 1
다들 잘 보셧나용
-
페라리 탈사람? 5 0
여느비구함
-
선양 바이럴 좆되네 0 0
오크 선양 <-- ㅈㄴ 실망스러움. 너무 단데 그 단맛이 너무 인공적임.
-
메가, 대성패스 환급 관련 4 0
꼭 모고 당일날에 채점해야만 하는 건 아니겠죠? 채점서비스 이용 가능 기간 언제든...
-
영화 '승부' 2 0
이병헌 연기 최고임 꼭 보셈
-
이번에 수학 진짜 잔실수도 많았고.. 약간 문제 읽는 것이나 조건 해석이 뭔가 렉이...
-
영어 독해 0 0
겨울방학 동안 매일 수능루틴 풀며 독해력을 길러왔고 그게 점수에도 나왔었는데 요즘...
-
재수생 3모 0 1
국어 잘하고 싶다
첫번째 댓글의 주인공이 되어보세요.