【发布时间】:2014-09-16 15:32:52
【问题描述】:
我已经添加了所有必需的功能 - 例如。推送、弹出和打印 - 在我的程序中,但无法在控制台屏幕上打印堆栈输出。我创建了三个单独的文件,其中包含类、函数和主文件。我想知道我在堆栈中插入的元素是否已成功插入,因此我需要打印更新后的堆栈。
stack.h
#ifndef Stack_H
#define Stack_H
using namespace std;
class Stack{
private:
//int const capacity=50;
int stack[50];
int count;
int top;
int maxitem;
public: //this is where the functions go
Stack();//constructor
void Push(int data);
void Pop(int delData);
void PrintStack();
};
#endif
stack.cpp
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <vector>
#include <string>
#include "Stack.h"
using namespace std;
Stack::Stack()
{
top=-1;
};
void Stack::Push(int data){
top++;
cin>>data;
stack[top]=data;
count++;
cout<<"inserted succefully :"<<data<<endl;
}
void Stack::Pop(int item)
{
if(top<0){
cout<<"stack is empty";
}
else{
item=stack[top];
top--;
cout<<"The deleted elememt is: "<<item<<endl;
}
}
void Stack::PrintStack()
{
if (top<0)
{
cout<<"Stack is empty ";
}
for(int i =top; i<0; i--)
{
cout<<"STACK IS "<<stack[i]<<" "<<endl;
}
}
main.cpp
#include <cstdlib>
#include <iostream>
#include <stack>
#include "Stack.h"
using namespace std;
int main()
{
Stack R;
int ele;
int data;
cout<<"enter the maximum elements in stack "<<endl;
cin>>ele;
cout<<endl<<"now enter the elements in stack "<<endl;
for(int data=0; data<ele; data++){
R.Push(data);
R.PrintStack();
}
R.Pop(item);
R.PrintStack();//stack after deletion of element
system("pause");
}
【问题讨论】:
-
for (int i = 0; i < top; ++i) cout << stack[i] << endl;怎么样 -
或
for (int i = top - 1; i >= 0; --i) cout << stack[i] << endl; -
I want to know that the elements I am inserting in the stack are successfully inserted为什么不直接使用调试器? -
问题出在哪里?