1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

#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 MyStack :public BaseArray {

    int top;

public:

    MyStack(int capacity = 100) {

        this->top = -1;

    }

    void push(int val);

    int pop();

    int length();

    int capacity();

};

void MyStack::push(int val) {

    this->top++;

    this->put(this->top, val);

}

int MyStack::pop() {

    this->top--;

    return this->get(top + 1);

}

int MyStack::length() {

    return this->top+1;

}

int MyStack::capacity() {

    return this->getCapacity();

}

 

int main() {

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

}

 

Colored by Color Scripter

cs

'C++' 카테고리의 다른 글

명품 c++ 9장 실습문제 1,2 번  (0) 2019.06.14
명품 c++ 8장 실습문제 7번  (0) 2019.06.10
명품 c++ 8장 실습문제 5번  (0) 2019.06.10
명품 c++ 7장 실습문제 9번  (0) 2019.06.06
명품 c++ 7장 실습문제 8번  (0) 2019.06.06

+ Recent posts