컴공 일기269
알고리즘 큐로 넘어왔습니다.
알고리즘 문제를 풀기 전에는 늘 그것과 관련된 자료구조를 직접 구현을 해봅니다.
이유야 여러가지 있겠지만, 사고방식을 세부 구현에 맞추다 보면 알고리즘 해법을 조금 더 잘 찾을 수 있거든요.
#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
-
만약에 100명이 2배수로 들어왔는데 99명은 다 aa나왔고 과탐가산점 없음 나만...
-
1황
-
자려 했는데 5판이나 했음뇨 어릴 때 주판으로 놀았던 게 도움이 되는 것 같기도..
-
나도 자러감 6
12시 전에는 일어날게 응
-
진짜잘게요 6
바이바이
-
유설, 장카로 나눠야 한다고 봄
-
워딩이 헷갈리잖아 인정하죠
-
오늘은 더 안풀어야지
-
이거 때문에 생활패턴 망햇어 세안하기 귀찮단말야..
-
얼버?기? 3
-
역시 선택을 잘햇어
-
하이머딩거가 된거같애
-
"경대의대가서 뭐할라꼬 거까지 가노 마. . . 가까운 붓싼대 가서 마 니...
-
제자야 일어나라 9
넵.
-
자야겟다 7
뇌가 쪼그라들고잇어..
-
전형을 건드리는 게 아니라 학사제도 개편으로 해도 되지 않았나 싶은 1학기...
-
전에 올린건데 2
펑
-
설명절 끝 1
집으로 복귀
-
고능해지고싶다 3
능지가너무딸린다...
-
굿나잇
-
심연이더라 난 빡갤이 뭔지 몰랐는데 한석원이 빡빡이라서 한석원갤이 빡갤이라는거임...
-
뇌가 이상항가 12
직선과 평면사이 거리가 최단거리란게 잇을 수가 잇나 그냥 직선이랑 평면이랑...
-
미적 뭉개면서 풀기 ㅁㄴㅇ?
-
새르비 노잼됐어 2
가야겠다 이제 할짓도없는데 수특이나벅벅.. 저능해졌긴 한가봄 스텝3가안풀리는걸보아하니......
-
아니 저 날벌레 색기 10
내가 아까 라이트 훅으로 눕혓는드ㅔ 언제 인낫냐 죽은거 아니엿냐
-
개 버러지 집중력이야
-
요즘 볼게없네 추천좀 19
일본애니안받음 심슨 숏츠로뜨는거보니까 좀 흥미생기는데 그거하나보자고 디즈니플러스...
-
베르테르 14번 푸리 11
3점인 ㅇ이유가 있네
-
섹스 12
아 입구컷이네 너무해….
-
2트 14
몬가 오르는데, 각 잡고 해볼까 ㅋㅋ
-
그렇다
-
일한다도르로 안자다가 이제야시작한 레전드인생ㄹ
-
얼버기 2
-
아직 난 안졸린데ㅜ
-
그래도 높진 않네
-
닉네임안바꾼지 4
1년반넘엇나
-
26 마더텅 독서 문제집 풀고 있는데요 너무 오래된 기출문제까지 풀어야 할까요?...
-
두자리×두자리는 5
둘의 합이 짝수면 (n-1)×(n+1)로 하면 편함 전에 환율계산하다가 깨우쳤었음
-
재종다니긴 쫌 그렇겟지 아쉽당
-
고3때 반에서 아는 커여운 애가 오르비 해서 수능끝나고 오르비 가입했었는데 이게 옯만추인거네
-
옯 또 궁금한거 6
글도 안썼고 덕코도 700 이렇고 뱃지센츄 없고 맞팔도없고 댓글에서도 자주 못본...
-
개인 신기록 달생 14
키보드 배치바꾸니 진짜 기록 증진된다
-
기차지나간당 8
부지런행
-
못일어날거같은데
-
라이트 훅으로 눕힘
-
사람자체가 귀여운 사람이 있는데 (재능충) 부엉이는 그냥 사람자체가 귀여움
-
https://namu.wiki/w/%EC%B9%B4%EC%98%A4%EC%8A%A4...
첫번째 댓글의 주인공이 되어보세요.