写一个MyStack栈,选一个实现类。

写一个MyStack栈,选一个实现类。提供方法:
empty()测试堆栈是否为空
peek()查看栈顶对象而不移除它
pop()移除栈顶对象并作为此函数的值返回该对象
push()把顶压入栈顶
有没有具体的代码提示啊,谢谢啦!!方法实现后,在mian函数中写什么啊?

第1个回答  2011-09-26
以下是一个示例:
#include<iostream>
using namespace std;

class MyStack
{
public:
MyStack(int size);
~MyStack();
void push(const int& item);
int pop();
int peek();
int empty() const {return (top==-1);}
private:
int *data;
int size;
int top;
};

MyStack::MyStack(int size)
{
data=new int[size];
top=-1;
}

MyStack::~MyStack()
{
delete[] data;
}

void MyStack::push(const int& item)
{
if(top==size-1)
{
cout<<"堆栈溢出"<<endl;
delete[] data;
exit(1);
}
top++;
data[top]=item;
}

int MyStack::pop()
{
int temp;
if(top==-1)
{
cout<<"不能从空栈中弹出"<<endl;
delete[] data;
exit(1);
}
temp=data[top];
top--;
return temp;
}

int MyStack::peek()
{
return data[top];
}

int main()
{
MyStack s(10);
s.push(5);
s.push(6);
s.push(7);

cout<<s.empty()<<endl;

cout<<s.pop()<<endl;
cout<<s.pop()<<endl;
cout<<s.peek()<<endl;
cout<<s.pop()<<endl;

cout<<s.empty()<<endl;
return 0;
}本回答被提问者采纳
第2个回答  2011-09-26
MyStack mergeStack(MyStack s1,MyStack s2){
char[] F,U,C,K;
MyStack zong=new MyStack(c);
MyStack s1=new MyStack(f);
MyStack s2=new MyStack(u);
s1.push(f);
s2.push(u);
while(!s1.isEmpty()||!s2.isEmpty()){
c=s1.pop();
c=s2.pop();
}
return c;
}
来给我分吧
相似回答