第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;
}
来给我分吧