飞 飞云.net Unregistered / Unconfirmed GUEST, unregistred user! 2003-10-19 #1 有A,B,C,D四辆车顺序开进栈结构的站内,请列出所有可能的出站顺序(注意:每一辆车进站后可以马上开出,但不能出了又进来。) 如果用穷举法写这个程序,请讲讲你的思路。
J JackKen Unregistered / Unconfirmed GUEST, unregistred user! 2003-10-19 #2 不太明白,A,B,C,D的进栈顺序是怎样。是不是一定要四个都进栈才出,还是可以即进即出。继续关注。
飞 飞云.net Unregistered / Unconfirmed GUEST, unregistred user! 2003-10-19 #3 abcd依次进站,出站时abcd可以即进即出,但不能出了再进来。
I icegirl914 Unregistered / Unconfirmed GUEST, unregistred user! 2003-10-19 #4 我也有点不明白,如果按照栈的原理,一次只能进一个也只能出一个,而且是先进先出的,那么只要abcd是按这个顺序进栈的话,只能一个以abcd这个顺序出栈,如果说abcd的进栈顺序可以顺意变的话,那么出栈也就是进栈的顺序了。
我也有点不明白,如果按照栈的原理,一次只能进一个也只能出一个,而且是先进先出的,那么只要abcd是按这个顺序进栈的话,只能一个以abcd这个顺序出栈,如果说abcd的进栈顺序可以顺意变的话,那么出栈也就是进栈的顺序了。
J JackKen Unregistered / Unconfirmed GUEST, unregistred user! 2003-10-19 #5 暂时想到一种方法但未验证。 大概是路, 首先,列出所有的顺序可能。将A,B,C,D变成1,2,3,4 列出所有的排列组合 1,2,3,4, 1,2,4,3, 1,3,4,2, 。。。。。。 然后筛选,若有a-a[i+1]>1的情况都不行。 暂时想到这么多。有进展再讨论
暂时想到一种方法但未验证。 大概是路, 首先,列出所有的顺序可能。将A,B,C,D变成1,2,3,4 列出所有的排列组合 1,2,3,4, 1,2,4,3, 1,3,4,2, 。。。。。。 然后筛选,若有a-a[i+1]>1的情况都不行。 暂时想到这么多。有进展再讨论
W wlmmlw Unregistered / Unconfirmed GUEST, unregistred user! 2003-10-19 #8 -----> ABCD BCDA CDBA DCBA
J JackKen Unregistered / Unconfirmed GUEST, unregistred user! 2003-10-19 #9 to 肥羊 4个当然简单但many时就有意思了。 继续补充,不行的排列条件应该是a-a[i+1]>max,max为a[0]到a[i-1]中最大的数。
J JackKen Unregistered / Unconfirmed GUEST, unregistred user! 2003-10-19 #10 to wlmmlw BDCA ADCB .....
W wei_feng2 Unregistered / Unconfirmed GUEST, unregistred user! 2003-10-19 #11 思路可以是这样的 把ABCD......放在一个数组中 (1)一个数进栈,两种情况:马上出栈或不出栈,马上出栈则输出该数。 (2)第二个数进栈,考虑是否出栈,B不出栈,则执行第三步;B出栈则输出B,栈是否空,不空则考虑里面的数是否继续出栈。 (3)第三个数进栈,考虑该数是否马上出栈,不出则执行第四步,出栈则输出该数;判断栈是否空?不空则是否有数出栈................... (4)第四个数进栈............... ........... 第n个数进栈..........
思路可以是这样的 把ABCD......放在一个数组中 (1)一个数进栈,两种情况:马上出栈或不出栈,马上出栈则输出该数。 (2)第二个数进栈,考虑是否出栈,B不出栈,则执行第三步;B出栈则输出B,栈是否空,不空则考虑里面的数是否继续出栈。 (3)第三个数进栈,考虑该数是否马上出栈,不出则执行第四步,出栈则输出该数;判断栈是否空?不空则是否有数出栈................... (4)第四个数进栈............... ........... 第n个数进栈..........
J JackKen Unregistered / Unconfirmed GUEST, unregistred user! 2003-10-19 #12 楼主怎么一点回应都没有。我又想了想之前的条件还不行。 改成,看是否存在a[x] (x>i+1),a[x]<a and a[x]>a[i+1], 有则该排列不符合题目要求。若遍历数组后都没有a[x],则输出。
楼主怎么一点回应都没有。我又想了想之前的条件还不行。 改成,看是否存在a[x] (x>i+1),a[x]<a and a[x]>a[i+1], 有则该排列不符合题目要求。若遍历数组后都没有a[x],则输出。
L LeeChange Unregistered / Unconfirmed GUEST, unregistred user! 2003-10-20 #13 http://www.delphibbs.com/delphibbs/dispq.asp?lid=1907504
飞 飞云.net Unregistered / Unconfirmed GUEST, unregistred user! 2003-10-20 #14 to 轻舞肥羊: 请将你的数学方法给我说的详细一点.