728x90
#include <iostream>
using namespace std;
class BaseArray {
private:
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 : protected BaseArray {
private:
int front;
int rear;
public:
MyQueue(int capacity) : BaseArray(capacity) { front = rear = 0; }
void enqueue(int n) {
rear = (rear + 1) % getCapacity();
put(rear, n);
}
int length() { return(rear - front) % getCapacity(); }
int dequeue() {
front = (front + 1) % getCapacity();
return get(front);
}
int capacity() { return getCapacity(); }
};
int main() {
cout << "2018305051 전유정" << endl << endl;
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;
}
#include <iostream>
using namespace std;
class BaseArray {
private:
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 MyStact : protected BaseArray {
int tos;
public:
MyStact(int capacity) : BaseArray(capacity) { tos = 0; }
void push(int n) {
put(tos, n);
++tos;
}
int pop() {
--tos;
return get(tos);
}
int capacity() { return getCapacity(); }
int length() { return tos; }
};
int main() {
cout << "2018305065 전유정" << endl << endl;
MyStact mStack(100);
int n;
cout << "스택에 삽입할 5개의 정수를 입력하라>> ";
for (int i = 0; i < 5; ++i) {
cin >> n;
mStack.push(n); // 스택에 푸시
}
cout << "스택 용량:" << mStack.capacity() << ", 스택 크기:" << mStack.length() << endl;
cout << "스택의 원소를 순서대로 제거하여 출력한다>> ";
while (mStack.length() != 0) {
cout << mStack.pop() << ' '; // 스택에서 팝
}
cout << endl << "스택의 현재크기 : " << mStack.length() << endl;
}
반응형
'전공 공부 > C++' 카테고리의 다른 글
클래스 WonToDollar (0) | 2021.06.16 |
---|---|
클래스 Shape 가상 함수 (0) | 2021.06.16 |
클래스 Calculator (다중 상속) (0) | 2021.06.07 |
클래스 NameCircle (상속, 파생 클래스와 생성자 작성) (0) | 2021.06.07 |
클래스 Circle (프렌드 함수로 연산자 구현) (0) | 2021.06.07 |