关于栈的问题

一个栈的入栈序列a,b,c,d,e,则栈的不可能的输出序列是1.edcba2.decba3.dceab4.abcde答案是3。为什么求指教,谢了!... 一个栈的入栈序列a,b,c,d,e,则栈的不可能的输出序列是
1.edcba 2.decba 3.dceab 4.abcde
答案是3。为什么求指教,谢了!
展开
 我来答
古振元
2010-11-08 · TA获得超过1046个赞
知道小有建树答主
回答量:176
采纳率:0%
帮助的人:262万
展开全部
1、a,b,c,d,e先后入栈,e,d,c,b,a先后出栈;
2、a,b,c,d入栈,然后d出栈,然后e入栈,(这时栈里的内容是a,b,c,e),最后e,c,b,a先后出栈;
3、不可能(最后ab这个顺序不可能实现)
4、a先入栈,然后出栈;接着b入栈,然后b出栈;接着c入栈,然后c出栈;d入栈,d出栈;e入栈,e出栈
bhnd97
2010-11-10 · TA获得超过175个赞
知道答主
回答量:429
采纳率:0%
帮助的人:251万
展开全部
第一个问题,你最好再定义一个重新设定Stack长度的成员函数,比如
template<class T> void Stack<T>::setSize(int l){
delete []elements;
elements=new T[maxSize];
}
这样你就可以在Stack被动态初始化后再定义它的长度。

第二个问题,你是不是没有把elements的默认值设为0?items=new Stack<int>[length];调用的是Stack的默认构造函数,如果你没有在这里把elements指向0,那么当调用析构函数的时候就会出问题。而你去掉任意一个析构函数都会导致Stack里的动态数组不被释放,所以没事。这样设置默认构造函数:
template<class T> Stack<T>::Stack(){
top=-1;
maxSize=0;
elements=0;
}
这样就应该可以了。
请参考
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
_fmlyht
2010-11-08 · TA获得超过2359个赞
知道大有可为答主
回答量:2398
采纳率:0%
帮助的人:1845万
展开全部
因为其他都是可能的,^_^,不过,的确就是这样的!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式