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;
}

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기