有ABCD四个元素依次进栈,并且以各种顺序出栈,那么出栈的数据序列有几种不同的排列方式,为什么?

DABC,DACB,DBCA,DBAC,DCAB,CABD,CBAD,ADBC,ADCB,BDAC,CDAB,CADB,是不是只有这几种不是,有4种排列是不是?

我来补充吧,其实进栈出栈是可以同时进行的,并不一定要全部进去再出来,可以先进一步分再出来,所以关键是从那个开始先出
1.第一个先出的为D 则必须为DCBA
2.第一个出来的是C则可为 CDBA (ABC依次进然后C出来D进去再出来然后BA出来) 也可为CBAD 也可为CBDA(CB出来D进 、出,A出) 就是C之前的AB必须先B再A 因为是A先进而B是后进(注意是没有出去)
3、同理第一个为B时可以为 BCDA、BDCA、BACD、BADC、BCAD(BDAC是不行的因为要D排第二必须C进去而没有出来也就是说C必须先A而出)
4.第一个出来的是A,ABCD ABDC ACBD ACDB ADCB (同理ADBC不行)
所以一共有很多个啊 14个貌似 唉 悲催的孩子后天考access啊 唯有即学即卖了
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-05-21
栈就是先进后出
因该只有一种DCBA 啊?
关注
第2个回答  2012-07-05
我觉得是六种:1 CBAD 2 BACD 3 BADC 4 ABCD 5 ACBD 6 ADCB
第3个回答  2008-05-26
acbd dbac ........ yuhn
第4个回答  2008-05-21
栈的主要特点是”后进先出,先进后出”,即后进栈的元素先处理,先进栈的元素后处理。(后面进去的先出来,先进去的后出来)
只有一种方式:DCBA
A先进去,哪么它要最后出来,D最后进去,哪么它第一个出来。本回答被提问者采纳
相似回答