/*                                    FIFO 모듈 분리                                */




/*                                    queue3.c                                        */

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <stdio.h>
#include <stdlib.h>
#include "queue3.h"
 
void insert(Queue *ps, int data)
{
    if(ps->rear == QUEUESIZE)
    {
        fprintf(stderr, "queue is full. \n");
        exit(-1);
    }
    ps->queue[ps->rear] = data;
    ++ps->rear;
}
 
int delete(Queue *ps)
{
    if(ps->front == ps->rear)
    {
        fprintf(stderr, "queue is empty. \n");
        exit(-2);
    }
    return ps->queue[ps->front++];
}
void initStack(Queue *ps)
{
    ps->front=0;
    ps->rear=0;
}




/*                                            testqueue3.c                                    */

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <stdio.h>
#include "queue3.h"
 
int main(void)
{
    Queue q1, q2;
    initStack(&q1);
    initStack(&q2);
    
    insert(&q1, 100);
    insert(&q1, 200);
    insert(&q1, 300);
    
    insert(&q2, 700);
    insert(&q2, 800);
    insert(&q2, 900);
    
    printf("q1 1st deleteQ : %d\n"delete(&q1));
    printf("q1 2st deleteQ : %d\n"delete(&q1));
    printf("q1 3st deleteQ : %d\n"delete(&q1));
    
    printf("q2 1st deleteQ : %d\n"delete(&q2));
    printf("q2 2st deleteQ : %d\n"delete(&q2));
    printf("q2 3st deleteQ : %d\n"delete(&q2));
    return 0;
}





/*                                        queue.h                                    */


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#ifndef QUEUE3_H
#define QUEUE3_H
 
#define QUEUESIZE 100
 
typedef struct{
    int queue[QUEUESIZE];
    int front;
    int rear;    
} Queue;
 
void insert(Queue *ps, int data);
int delete(Queue *ps);
void initStack(Queue *ps);
 
#endif
 





Posted by 차희빈

차희빈

달력