컴공 일기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를 선물하세요.
-
대충 살앗음 걍
-
국시 자격 여부는 교육부 소관이라고 그럼 불인증먹어도 국시칠수있을듯..? 교육부...
-
홍익대가 나 떨구면 반수해야하는데 반수ㅈ망대비 전과도 해야됨 안정으로 쓰려고 과를...
-
롤 0
의정리
-
메가패스 살까 0
대성은 있는데 민철게이와 함께하고 싶어지는 월요일입니다
-
없는거 같음 내가 올해수능 잘봤으면 안 우울했을까? 현역때 잘 갔으면 안우울했을까...
-
8분전 마지막 만찬 27
ㅅㄷㅇ ㅇㅅㅎ(a.k.a. ㄱㅎㅎㅎㅎ) ㅈㄴㅂㅇㅇ ㅅㄷㄹㄹ ㄱㅈ ㅇㄷㅇ ㅅㅂ ㅈㅂ...
-
남자 기준!
-
이 문제를 통해 2가지의 배울만한 마인드가 있습니다.1) 수능 문제수능 문제는...
-
휴 이제 정리하고 자야징
첫번째 댓글의 주인공이 되어보세요.