컴공 일기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를 선물하세요.
-
숭실 자전 입학할 것 같은데 사탐 공대러에게 혹시 추천해주실 수 있을까요..?...
-
‼️우석대학교 약학과 25학번 새내기 여러분을 찾습니다‼️ 0 0
안녕하세요 제 41대 우석대학교 약학과 학생회 ☘️우연☘️입니다. 우선 우석대학교...
-
서울대를 포기했습니다 15 2
집앞 중학교에서 텝스랑 수학 치러지는데 갈등하다가 안갔네요 먼훗날 이라기엔 당장...
-
시립대 경제 폭 1 0
올해 폭 난거 같은데 추합 몇명이나 될까요?
-
이번주는 돈을 벌 수 있다 0 1
끼얏호우
-
이거 회피형 심한거임? 10 0
노트북 고장나서 새로 샀는데 이모부가 아는 분 알려줘서 그분한테 계좌이체해서...
-
두날개 2026 예약판매 개시 10 29
안녕하세요! 물리학2 기출문제집 저자 김보석입니다. 캐스트로는 처음 인사드려봅니다!...
-
난 대전사서 살아보고싶어 6 1
서울과 대구, 부산의 중간이라 교통도 나름 편해 빵♡♡사랑함 맛있는빵 최고 도넛도...
-
그냥 궁금한게 15 1
요즘 옯평 좀 높아진거같애 다 설뱃,의뱃달고있음 ㄹㅇ...
-
사문윤사 vs 생윤윤사 0 0
뭐가 더 나을까요?? 생윤은 애매한거 싫어서 고민중이고.. 사문은 이번에 표본...
-
뭐 국숭세단들이 과외를 한다고? 13 0
응애 나 아기 동국대생인데 과외해도되냐?
첫번째 댓글의 주인공이 되어보세요.