컴공 일기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 전단원임?? 1 0
6모 대비용인가여??
-
그때 가성비 말이 안되긴했는데........ 지금 문학 모의고사도 저렴하고 비연계도...
-
수학 n제 조언좀여 ㅈㅂㅈㅂㅈㅂㅈㅂ조언해주시면 수능 수학1뜸 3 0
6모 미적 84점 입니다 뉴런 기출 공통 미적 다 했고 수특수완 끝나가서 n제...
-
아직생윤기출1회독도못했어 2 0
나대학갈수있나?
-
처음에는 메소 같은 건 줄 알았는데 메인글 보니까 현금화도 못 하는 거 같고
-
탱구노래는들으면벅차오르는게잇어 3 0
너를그리는시간 UR RAIN 11 11 다 조음
-
이시간 웃지 못하는 강사 1 2
피코
-
여기서 갑자기 뜬금포 질문!! 1 1
설레임 엔제 어떠나요 아이 ㅎㅎ 풀려고 하는 건 아니구 ㅎㅎ 구경만 해보게요 ㅎㅎ
-
인강들을때 4 0
만약 2강을 듣는다고 한다면 한강 듣고 복습하고 또 듣고 그러나요? 아니면 2강 다...
-
ㄱㅁ할게요 3 0
오늘 저녁 후쿠오카함박 존맛
-
투투장연 행복사각인가 1 2
시대에들 한번쯤 돋받고 자료팔지않앗을까? 손 벌벌떨려서 공부못할듯
첫번째 댓글의 주인공이 되어보세요.