8.5> BaseArray를 상속받아 큐처럼 작동하는 MyQueue 클래스를 작성하라. MyQueue를 활용하는 사례는 다음과 같다.
<코드>
#include <iostream>
using namespace std;
class BaseArray{ private: int capacity;//배열의 크기 int *mem;//정수 배열을 만들기 위한 메모리의 포인터 protected: BaseArray(int capacity=100){ //디폴트 매개변수 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{ private: int rear; //마지막 인덱스 int front; // 첫번째 인덱스 -1 public: MyQueue(int capacity,int front,int rear); //큐 생성자 void enqueue(int arg); //마지막에 원소 추가 int capacity(); //용량 int length(); //현재 길이 int dequeue(); //첫번째 원소 리턴 }; MyQueue::MyQueue(int capacity=100,int front=-1,int rear=-1):BaseArray(capacity){ this->front=front; this->rear=rear; } void MyQueue::enqueue(int arg){ rear++; put(rear,arg); } int MyQueue::capacity(){int cap=getCapacity(); return cap;} int MyQueue::length(){ return rear-front; } int MyQueue::dequeue(){ int out=get(front+1); front++; return out; } int main(void){ 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; return 0; }
|
<결과창>
|
'컴퓨터 & 프로그래밍 & 전자공학 > C++' 카테고리의 다른 글
ROM RAM class (0) | 2017.12.31 |
---|---|
MyStack Class (0) | 2017.12.31 |
Stack class (0) | 2017.12.25 |
Statistics class (0) | 2017.12.25 |
Circle class 오퍼레이터 오버로딩 (0) | 2017.12.25 |