반응형
#include <iostream>
using namespace std;
class MyIntStack {
int p[10]; //최대 10개의 정수 저장
int tos; //스택의 꼭대기를 가리키는 인덱스
public:
MyIntStack();
bool push(int n); //정수 n 푸시. 꽉 차 있으면 false, 아니면 true 리턴
bool pop(int &n);//팝하여 n에 저장. 스택이 비어 있으면 false, 아니면 true 리턴
};
MyIntStack::MyIntStack() {
tos = 0;
}
bool MyIntStack::push(int n) {
if (tos == 10)
return false;
else
p[tos] = n;
tos++;
return true;
}
bool MyIntStack::pop(int &n) {
if (tos == 0)
return false;
else
n = p[tos-1];
tos--;
return true;
}
int main() {
MyIntStack a;
for (int i = 0; i < 11; i++) {//11개를 푸시하면,마지막에는 stack full이 된다.
if (a.push(i)) cout << i << ' '; //푸시된 값 에코
else cout << endl << i + 1 << " 번째 stack full" << endl;
}
int n;
for (int i = 0; i < 11; i++) { //11개를 팝하면, 마지막에는 stack empty가 된다.
if (a.pop(n)) cout << n << ' '; //팝 한 값 출력
else cout << endl << i + 1 << " 번째 stack empty";
}
cout << endl;
}
반응형
'프로그래밍' 카테고리의 다른 글
[C++] 명품 c++ 프로그래밍 실습 5장 12번 (0) | 2020.12.23 |
---|---|
[C++] 명품 c++ 프로그래밍 실습 5장 8번 (0) | 2020.12.23 |
[C++] 명품 c++ 프로그래밍 실습 5장 1번 (0) | 2020.12.23 |
[C++] 명품 c++ 프로그래밍 실습 4장 6번 (0) | 2020.12.23 |
[C++] 명품 c++ 프로그래밍 실습 4장 4번 (0) | 2020.12.23 |