#pragma once
#ifndef ___StudentQueue
#define ___StudentQueue
#include "Node_Student.h"
//StudentQueue.h : 학생정보 큐 클래스
class StudentQueue {
Node* front; //가장 먼저 삽입된 노드의 포인터
Node* rear; //마지막에 삽입된 노드의 포인터
public:
StudentQueue() : front(NULL), rear(NULL) {}
~StudentQueue() { while (!isEmpty()) delete dequeue(); }
bool isEmpty() { return front == NULL; }
//삽입 연산 : 연결된 큐의 맨 뒤에 노드 삽입
void enqueue(Node* p) {
if (isEmpty()) front = rear = p;
else {
rear->setLink(p);
rear = p;
}
}
//삭제 연산 : 연결된 큐의 맨 앞 노드를 삭제
Node* dequeue() {
if (isEmpty()) return NULL;
Node* p = front;
front = front->getLink();
if (front == NULL) rear = NULL;
return p;
}
Node* peek() { return front; }
void display() {
printf("[전체 학생 정보]\n");
for (Node* p = front; p != NULL; p = p->getLink())
p->display();
printf("\n");
}
};
#endif // !___StudentQueue
'Programming > DS SorceCode' 카테고리의 다른 글
Node_Int : 연결된 큐를 위한 int형 클래스 + 연결 리스트로 구현된 리스트를 위한 노드 클래스 (0) | 2019.03.23 |
---|---|
ArrayList.h : 배열을 이용한 리스트 클래스 구현 (0) | 2019.03.23 |
LinkedQueue.h : 연결된 큐 클래스 (0) | 2019.03.22 |
Node_Int : 연결된 큐를 위한 int형 클래스 (0) | 2019.03.22 |
LinkedStack.h : 연결된 스택 클래스 구현 (0) | 2019.03.22 |