잘못된것좀 알려주세요
초롱꽃
질문 제목 : 잘못된것좀 알려주세요질문 요약 :이게 바로 stack full이 나오내요
어디가 잘못된거조?;질문 내용 :
#include iostream
using namespace std;class stack
{
int top;
int size;
int *buffer;public:
void init(int size=10);
void removeall();
bool push(int value);
bool pop(int &value);
};void stack::init(int size)
{
buffer = new int[size];
top =-1;
}void stack::removeall()
{
delete [] buffer;
}bool stack::push(int value)
{
if(top+1 size-1)
{
cout stack fulll! endl;
return false;
}
else
{
top++;
buffer[top] = value;
return true;
}
}bool stack::pop(int &value)
{
if(top 0 )
{
cout stack empty endl;
return false;
}
else
{
value = buffer[top];
top--;
return true;
}
}
int main()
{
stack s1;
cout address in &s1 endl;
cout size = sizeof(s1) endl; s1.init(20);
if(s1.push(1))
cout 입력완료\n;
else
cout stack full\n; if(s1.push(2))
cout 입력완료\n;
else
cout stack full\n;
if(s1.push(3))
cout 입력완료\n;
else
cout stack full\n;
if(s1.push(4))
cout 입력완료\n;
else
cout stack full\n;
if(s1.push(5))
cout 입력완료\n;
else
cout stack full\n; int value;
if(s1.pop(value))
cout value = value;
else
cout empty\n;
if(s1.pop(value))
cout value = value;
else
cout empty\n;
if(s1.pop(value))
cout value = value;
else
cout empty\n;
if(s1.pop(value))
cout value = value;
else
cout empty\n; system(pause); return 0;
}
-
옆집오빠야 2023-12-08
아아.. 죄송해요 ㄷㄷ 다시 공부해볼께요
-
중독된 2023-12-08
그것에 관해서도 이미 해줬습니다 lint 함수에 this.size=size; 를 추가하세요 ;;
스택 먼저 공부 하시기전에 씨플부터 공부 하시는것이 중요합니다
스택을 나중에 천천히 알아도 되는 과정입니다 씨플 클래스 사용법이 더 중요하죠 -
글리슨 2023-12-08
제가 잘 몰라서 그러는대 어떻게 바꿔야되는거조??; 아무리 바꿔봐도 안되내요
-
너에게 2023-12-08
이미 설명 해줬는데요 ;;; 클래스 스택에 size를 초기화 하세요 lint에서요 ;;
생성자도 없고 소멸자도 없고 ;; 쩝