컴공 일기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를 선물하세요.
-
01년생 아무나 4명 1 0
-
주제가 성찰인데 선지로 풍경 관조 내는거 악질아님? 내면 관조면 이해라도 되는데
-
고2 언매 1 0
언매 공부 해보고 잘 되면 수능에서 선택하려고 하는데 어느 인강이 제일 괜찮을까요?...
-
진짜 한녀들 의리 ㅈㄴ없네 와 11 1
진짜 대박이다
-
모두가 다 각자의 시선으로 세상을 바라보고 경험하지 못한 세계는 받아들이기 어렵기...
-
과외 제안서 쓰는데 좀 쪽팔림 3 2
거짓말을 쓰진 않는데 내가 조금 더 돋보일 수 있게 쓰고잇음....
-
더프 국어 등급컷 어떨거같나요 4 0
96이면 1 안정임?
-
수학 현강 추천해 6 0
주세요.. 25학년도 수능 미적분 "백분위92" (원점수92아님) 입니다 위치는...
-
저무시눈도 끝났네 0 0
꽤 재밌는 판타지 웹툰입니다.
-
니게tv 개국 148일차 1 0
오늘은 2월 49일입니다.
-
ㄹㅇ 지금 너무 외로움
-
그냥 미적으로 간다 2 0
ㄱㄱ혓
-
미적 진짜 못해먹겠음ㅋㅋㅋㄱ 2 0
하... 기출 3회독하고 n제나 ㅈㄴ해야겠다
-
오르비과외시장예쁜누나개많네 6 0
첫번째 댓글의 주인공이 되어보세요.