您好、欢迎来到现金彩票网!
当前位置:老k棋牌 > 栈元素 >

从标准输入中输入一组栈操作:1表示入栈操作后跟一个整数为入栈

发布时间:2019-07-10 09:44 来源:未知 编辑:admin

  从标准输入中输入一组栈操作:1表示入栈操作,后跟一个整数为入栈元素;0表示出栈操作;-1表示操作结束。

  从标准输入中输入一组栈操作:1表示入栈操作,后跟一个整数为入栈元素;0表示出栈操作;-1表示操作结束。

  假设给定的整数栈初始状态为空,栈的最大容量为100。从标准输入中输入一组栈操作,按操作顺序输出出栈元素序列。栈操作:1表示入栈操作,后跟一个整数(不为1、0和-1)为入栈元素;0表...

  假设给定的整数栈初始状态为空,栈的最大容量为100。从标准输入中输入一组栈操作,按操作顺序输出出栈元素序列。栈操作:1表示入栈操作,后跟一个整数(不为1、0和-1)为入栈元素;0表示出栈操作;-1表示操作结束。

  从标准输入读取一组栈操作,入栈的整数和表示栈操作的整数之间都以一个空格分隔。

  在一行上按照操作的顺序输出出栈元素序列,以一个空格分隔各元素,最后一个元素后也要有一个空格。如果栈状态为空时进行出栈操作,或栈满时进行入栈操作,则输出字符串“error”,并且字符串后也要有一空格。所有操作都执行完后,栈也有可能不为空。

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  2017-06-02展开全部这个题跟栈没有什么关系。如果仅仅统计有多少种可能,应该是个数学问题:C(2n-2, n-1) - C(2n-4, n-2),就是求个组合数。如果还要把出栈的过程打印出来,就稍显麻烦了。

  1、A可能进去后马上出栈,也可能先进AB然后只出B,也可能ABC一起进,然后一个一个出。

  2、问有多少种出栈方式,说白了就是统计入栈、出栈操作有多少种组合。n个数,共需要n个入栈操作,n个出栈操作。由于第一个操作永远是入栈,最后一个操作永远是出栈,所以计算量可以简化,就是求中间n-1个入栈操作、n-1个出栈操作有多少种组合。这个数量很好算,就是C(2n-2, n-1),例如示例中n=3,那应该共有C(4, 2)=6种组合。但是需要剔除一种情况,就是只入了一次栈却连着两次出栈(或更多),这在实际中是不可能发生的。

  3、把入栈操作记为1,出栈操作记为-1。例如n=3时的组合有6种情况,但1 -1 -1 1 1 -1这种情况不可能发生(所以说缺CAB),因为从左加到右的过程中出现了和小于零的情况。这个题的任务就是把这种情况剔除。

  4、算法实现:可以将两种操作看作是二叉树,左儿子表示入栈(1)、右儿子表示出栈(-1)。设一个sum变量,初始为0,从根开始遍历二叉树(前序、中序、后序都行),遇左儿子sum加1,右儿子减1,如果此时sum0,表示这种情况不能发生,马上回溯。

http://advntravel.com/zhanyuansu/169.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有