1. 用C++或Java写一个关于堆栈的类描述,并为堆栈的压栈(push)和出栈(pop)操作编写方法 5

 我来答
松甜恬0Je4ba
推荐于2017-11-28 · TA获得超过2.6万个赞
知道大有可为答主
回答量:7475
采纳率:100%
帮助的人:3372万
展开全部
#include<iostream.h>
using namespace std;
const int MAX=5; //假定栈中最多保存5个数据
//定义名为stack的类,其具有栈功能
class stack {
//数据成员
float num[MAX]; //存放栈数据的数组
int top; //指示栈顶位置的变量
public:
//成员函数
void init(void) { top=0; } //初始化函数
void push(float x) //入栈函数
{
if (top==MAX){
cout<<"Stack is full !"<<endl;
return;
};
num[top]=x;
top++;
}
float pop(void) //出栈函数
{
top--;
if (top<0){
cout<<"Stack is underflow !"<<endl;
return 0;
};
return num[top];
}
}
//以下是main()函数,其用stack类创建栈对象,并使用了这些对象
main(void)
{
//声明变量和对象
int i;
float x;
stack a,b; //声明(创建)栈对象
//以下对栈对象初始化
a.init();
b.init();
//以下利用循环和push()成员函数将2,4,6,8,10依次入a栈对象
for (i=1; i<=MAX; i++)
a.push(2*i);
//以下利用循环和pop()成员函数依次弹出a栈中的数据并显示
for (i=1; i<=MAX; i++)
cout<<a.pop()<<" ";
cout<<endl;
//以下利用循环和push()成员函数将键盘输入的数据依次入b栈
cout<<"Please input five numbers."<<endl;
for (i=1; i<=MAX; i++) {
cin>>x;
b.push(x);
}
//以下利用循环和pop()成员函数依次弹出b栈中的数据并显示
for (i=1; i<=MAX; i++)
cout<<b.pop()<<" ";
}
风吹秋叶舞
2011-07-13 · TA获得超过127个赞
知道答主
回答量:128
采纳率:0%
帮助的人:60.4万
展开全部
#include<iostream>
using namespace std;
class sStack;
class sStack
{
public:
sStack(){};
sStack(int a,sStack *p=NULL)
{
num = a;
next = p;
}
void push();
void pop();
void display()
{
cout<<num<<"\t";
}
void play()
{
sStack *p=sStack::top;
while(p!=NULL){
p->display();
p=p->next;
}
}
protected:
static sStack *top;
int num;
sStack *next;
};
sStack* sStack::top = NULL;
void sStack::push()//压栈
{
if(sStack::top == NULL)
{
next = NULL;
}
next = sStack::top;
sStack::top = this;
}
void sStack::pop()
{
if(sStack::top!=this)
cout<<"不可出栈"<<endl;
else{
sStack::top = this->next;
this->next = NULL;
}
}

int main()
{
sStack s1(1); sStack s2(2); sStack s3(3);
//入栈
s1.push(); s1.play();cout<<endl;
s2.push(); s2.play();cout<<endl;
s3.push(); s3.play();cout<<endl;
//出栈
s3.pop(); s3.play();cout<<endl;
s2.pop(); s2.play();cout<<endl;
s1.pop(); s1.play();cout<<endl;
return 0;
}

我写了一个很简单的 很短 你扩充下就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mwf583
2011-07-13 · 超过29用户采纳过TA的回答
知道答主
回答量:154
采纳率:0%
帮助的人:98.3万
展开全部
上楼的回答得很好了,顶一个!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式