반응형

원형 큐 7

3.4 큐(Queue) [디딤돌 자료구조와 알고리즘 with C++]

3.4 큐(Queue) 이번에는 큐를 알아보기로 해요. 큐는 자료를 한쪽으로 보관하고 다른쪽에서 꺼내는 FIFO(First In First Out) 방식의 자료구조입니다. 큐에 자료를 보관하는 연산을 PUT 혹은 ENQUEUE라 말하고 꺼내는 연산을 GET 혹은 DEQUEUE라고 말합니다. 그리고 보관할 위치 정보를 REAR, 꺼낼 위치 정보를 FRONT라고 말해요. 먼저 간단하게 보관하는 큐를 만들어 보기로 해요. class Queue { 여기에서는 자료를 저장할 버퍼를 생성할 때 정하기로 할게요. 버퍼의 위치를 기억할 멤버를 선언하세요. int *buffer; 버퍼의 크기를 기억할 멤버도 필요하겠죠. const int size; 자료를 꺼낼 위치 정보도 기억해야 합니다. int front; 자료를 보..

원형 큐 - 버퍼 공간 자동으로 할당, 동적 데이터 보관, C언어 소스

원형 큐 - 버퍼 공간 자동으로 할당, 동적 데이터 보관, C언어 소스 //원형 큐 - 버퍼 공간 자동으로 할당, 동적 데이터 보관 #include #include #include #define NEXT(index,QSIZE) ((index+1)%QSIZE) //원형 큐에서 인덱스를 변경하는 매크로 함수 typedef void * Element; //void * 형식을 Element 형식 명으로 정의 typedef struct Queue //Queue 구조체 정의 { Element *buf;//저장소 int qsize; int front; //꺼낼 인덱스(가장 오래전에 보관한 데이터가 있는 인덱스) int rear;//보관할 인덱스 int count;//보관 개수 }Queue; Queue *NewQueu..

원형 큐 - 버퍼 자동으로 확장, 정수 보관, C언어 소스

원형 큐 - 버퍼 자동으로 확장, 정수 보관, C언어 소스 //원형 큐 - 버퍼 자동으로 확장, 정수 보관 #include #include #define NEXT(index,QSIZE) ((index+1)%QSIZE) //원형 큐에서 인덱스를 변경하는 매크로 함수 typedef struct Queue //Queue 구조체 정의 { int *buf;//저장소 int qsize; int front; //꺼낼 인덱스(가장 오래전에 보관한 데이터가 있는 인덱스) int rear;//보관할 인덱스 int count;//보관 개수 }Queue; Queue *NewQueue();//생성자 void DeleteQueue(Queue *queue);//소멸자 int IsEmpty(Queue *queue); //큐가 비었는..

원형 큐 - 동적 생성, 정수 보관, C언어 소스

원형 큐 - 동적 생성, 정수 보관, C언어 소스 //원형 큐 - 동적 생성, 정수 보관 #include #include #define NEXT(index,QSIZE) ((index+1)%QSIZE) //원형 큐에서 인덱스를 변경하는 매크로 함수 typedef struct Queue //Queue 구조체 정의 { int *buf;//저장소 int qsize; int front; //꺼낼 인덱스(가장 오래전에 보관한 데이터가 있는 인덱스) int rear;//보관할 인덱스 int count;//보관 개수 }Queue; Queue *NewQueue(int qsize);//생성자 void DeleteQueue(Queue *queue);//소멸자 int IsFull(Queue *queue); //큐가 꽉 찼는지..

원형 큐 - 버퍼 공간을 동적으로 생성, 정수 보관, C 언어 소스

원형 큐 - 버퍼 공간을 동적으로 생성, 정수 보관, C 언어 소스 //원형 큐 - 버퍼 공간을 동적으로 생성, 정수 보관 #include #include #define NEXT(index,QSIZE) ((index+1)%QSIZE) //원형 큐에서 인덱스를 변경하는 매크로 함수 typedef struct Queue //Queue 구조체 정의 { int *buf;//저장소 int qsize; int front; //꺼낼 인덱스(가장 오래전에 보관한 데이터가 있는 인덱스) int rear;//보관할 인덱스 int count;//보관 개수 }Queue; void InitQueue(Queue *queue, int qsize);//큐 초기화 int IsFull(Queue *queue); //큐가 꽉 찼는지 확인..

원형 큐 - 모든 공간 사용, 정수 보관, C언어 소스

원형 큐 - 모든 공간 사용, 정수 보관, C언어 소스 //원형 큐 - 모든 공간 사용, 정수 보관 #include #define QUEUE_SIZE 10 #define NEXT(index) ((index+1)%QUEUE_SIZE) //원형 큐에서 인덱스를 변경하는 매크로 함수 typedef struct Queue //Queue 구조체 정의 { int buf[QUEUE_SIZE];//저장소 int front; //꺼낼 인덱스(가장 오래전에 보관한 데이터가 있는 인덱스) int rear;//보관할 인덱스 int count;//보관 개수 }Queue; void InitQueue(Queue *queue);//큐 초기화 int IsFull(Queue *queue); //큐가 꽉 찼는지 확인 int IsEmpty..

원형 큐 - 버퍼 크기 고정, 정수 보관, C언어 소스

원형 큐 - 버퍼 크기 고정, 정수 보관, C언어 소스 //원형 큐 - 버퍼 크기 고정, 정수 보관#include #define QUEUE_SIZE 10#define NEXT(index) ((index+1)%QUEUE_SIZE) //원형 큐에서 인덱스를 변경하는 매크로 함수 typedef struct Queue //Queue 구조체 정의{ int buf[QUEUE_SIZE];//저장소 int front; //꺼낼 인덱스(가장 오래전에 보관한 데이터가 있는 인덱스) int rear;//보관할 인덱스}Queue; void InitQueue(Queue *queue);//큐 초기화int IsFull(Queue *queue); //큐가 꽉 찼는지 확인int IsEmpty(Queue *queue); //큐가 비었는..

반응형