본문 바로가기
programming/명품 C++ programming

명품 C++ programming 실습 문제 8장 5번

by doachy 2021. 5. 18.

 문제

5. BaseArray를 상속받아 큐처럼 작동하는 MyQueue 클래스를 작성하라. MyQueue를 활용하는 사례는 다음과 같다.

 

 

실행 결과

코드

 

#include <iostream>
#include <string>
using namespace std;

class BaseArray {
	int capacity;
	int *mem;
protected : 
	BaseArray(int capacity=100) {
		this->capacity = capacity; mem = new int [capacity];
	}
	~BaseArray() { delete [] mem; }
	void put(int index, int val) { mem[index] = val; }
	int get(int index) { return mem[index]; }
	int getCapacity() { return capacity; }
};

class MyQueue : public BaseArray {
	int enindex;
	int deindex;
public :
	MyQueue(int size) : BaseArray(size){ enindex=0; deindex=-1; }
	void enqueue(int n){ put( enindex, n);
								enindex++; }
	int capacity() { return getCapacity(); }
	int length() { return enindex; }
	int dequeue() { enindex--;
					deindex++; return get(deindex); }
};

int main() {
	MyQueue mQ(100);
	int n;
	cout << "큐에 삽입할 5개의 정수를 입력하라>> ";
	for(int i=0; i<5; i++) {
		cin >> n;
		mQ.enqueue(n);
	}
	cout << "큐의 용량:" << mQ.capacity() << ", 큐의 크기:" << mQ.length() << endl;
	cout << "큐의 원소를 순서대로 제거하여 출력한다>> ";
	while(mQ.length() != 0 ) {
		cout << mQ.dequeue() << ' ';
	}
	cout << endl << "큐의 현재 크기 : " << mQ.length() << endl;
}

댓글