【发布时间】:2015-11-25 19:39:44
【问题描述】:
这个程序已经调试过了,这里没有编辑
但每当我尝试将元素压入堆栈时,它就会崩溃。我可能做错了什么?函数原型和其他代码似乎没问题。
Push() 中的问题已经解决了,不过这里不做编辑了(喜欢调试的朋友)也可以看看 Display() 函数。
这是整个程序:
#include<conio.h>
#include<iostream>
#include<stdlib.h>
#include<stdbool.h>
using namespace std;
class Stack {
static const int Default_size = 100;
private:
int a[100];
int ele;
int max_size;
int top;
public:
Stack(int k){
int top = -1;
int max_size = k;
}
~Stack(){ delete [] a; }
public:
void Push(const int ele1);
void Pop();
bool Is_Full();
bool Is_empty();
void Display();
};
void Stack:: Push ( const int ele1) {
if(Is_Full())
cout<<"StackOverflow";
else
a[++top] = ele1;
}
void Stack::Pop () {
if(Is_empty())
cout<<"Stack empty";
else
top--;
}
bool Stack:: Is_Full() {
if(top == max_size)
return true;
else
return false;
}
bool Stack:: Is_empty() {
if( top == -1)
return true;
else
return false;
}
void Stack :: Display () {
for(int i = 0 ; i< top; i++)
cout<<a[i];
}
int main() {
Stack s(5);
cout<<"1 to push, 2 to pop, 3 to display, 4 to exit";
int ch;
cin>>ch;
while(ch != 4) {
if( ch == 1) {
cout<<"Enter element";
int ele; cin>>ele;
s.Push(ele);
}
else if( ch ==2) {
s.Pop();
}
else if(ch == 3) {
s.Display();
}
else
exit(0);
cout<<"Enter ch";
cin>>ch;
}
return 0;
}
【问题讨论】:
-
“它崩溃了”甚至不够描述性。
-
@ikegami 仍然不起作用。我会发布整个程序。
-
我们不想要你的整个程序。请发布该程序的最小可运行演示。
-
您也未能提供证明问题所需的必要输入。