본문 바로가기

분류 전체보기105

[자료구조 및 알고리즘 입문] 실습 161p // 큐에서 데이터를 피크 Int Peek(const InQueue *q, int *x) { if(q->num que[q->front]; return 0; } // 모든 데이터 삭제 void Clear(InQueue *q) { q->num q->front = q->rear = 0; } // 큐의 최대 용량 int Capacity(const InQueue *q) { return q->max; } // 큐에 쌓여 있는 데이 개수 int Size(const InQueue *q) { return q->num; } // 큐가 비어 있나요? int IsEmpty(const IntQueue *q) { return q->num num >= q->max; } // 큐에서 검색 int Search(const IntQueu.. 2022. 12. 15.
[자료구조 및 알고리즘 입문] 인큐 함수 Enque Enque 함수는 큐에 데이터를 인큐하는 함수입니다. // 큐에 데이터를 인큐 int Enque(IntQueue *q=, int x) { if( q->num >= q->max) return -1; else{ q->num++; q->que[q->rear++] = x; if (q->rear == q->max) q->rear = 0; return 0; } } Deque 함수는 큐에서 데이터를 디큐하는 함수입니다. * 디큐에 성공하면 0을 반환하지만 큐가 텅 비어 디큐할 수 없으면 -1을 반환합니다. https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=303672862 Do it! 자료구조와 함께 배우는 알고리즘 입문 : C 언어 편 전편보다 풍부한 도해와 예제로 자료구조.. 2022. 12. 15.
[자료구조 및 알고리즘 입문] 초기화 함수 Initialize // int형 큐 IntQueue(소스) #include #include #include "IntQueue.h" // 큐 초기화 int Initialize(IntQueue *q, int max) { q->num = q->front = q->rear = 0; if((q->que = calloc(max, sizeof(int)))) == NULL){ Q->max = 0; return -1; } q->max = max; return 0; } } Initialize 함수는 큐를 구현하기 위한 배열 생성 등의 준비 작업을 하는 함수입니다. 이때 첫 번째 인수 q는 처리 대상인 큐 구조체 객체에 대한 포인터이며, 이후 대부분의 함수도 마찬가지입니다. 큐를 처음 만들면 큐는 비어 있으므로 num, fron, rear .. 2022. 12. 15.
[자료구조 및 알고리즘 입문] 링 버퍼로 큐 만들기 // int형 큐 intQueue(헤더) #ifndef ___IntQueue #define ___IntQueue // 큐를 구현하는 구조체 typedef struct{ int max; // 큐의 최대 용량 int num; // 현재의 요소 개수 int front; // 프런트 int rear; // 리어 int *que; // 큐의 맨 앞 요소에 대한 포인터 } intQueue; // 큐 초기화 int Initialize(IntQueue *q, int max); // 큐에 데이터를 인큐 int Enque(IntQueue *q, int x); // 큐에서 데이터를 디큐 int Deque(IntQueue *q, int *x); // 큐에 데이를 피크 int Peek(const IntQueue *q, int .. 2022. 12. 15.