我正在学习堆栈数据结构,不幸的是在我的第一个代码中我得到的堆栈是完全运行时错误,因为我不太了解堆栈我无法在我的编写代码中跟踪错误请看看。 谢谢
#include
using namespace std;
struct Stack
{
int data[15];
int top;
};
void init(Stack &s)
{
s.top=-1;
}
bool isEmpty(Stack s)
{
if(s.top == -1)
return true;
else
return false;
}
bool isFull(Stack s)
{
if(s.top > 14)
{
return true;
}
else
{
return false ;
}
}
void push ( Stack &s,int value)
{
if(isFull(s) == true)
{
cout<<"Oooops Stack is Full :(\n";
}
else
{
s.top++;
s.data[s.top]=value;
}
}
int pop (Stack &s)
{
int removedValue = s.data[s.top];
s.data[s.top]=0;
if(isEmpty(s)== true)
{
cout<<"Ohhh Stack is Empty\n";
}
else
{
s.top--;
return removedValue;
}
}
int top(Stack s)
{
return s.top;
}
int main()
{
Stack items;
cout << "Hello Welcome to Stack!" << endl;
push(items,1);
cout<<pop(items)<<endl;
return 0;
}
答案 0 :(得分:0)
好的人在这里是错误..
我在main中声明了一个名为Stack的新堆栈,但没有使用
初始化它 void init(Stack &s)
{
s.top=-1;
}
所以这是通过在main()
中初始化堆栈的答案Stack items;
init(items);