主题:问个关于栈的应用的很菜的问题。给出正确题解的+30
pascaler
[专家分:150] 发布于 2006-03-16 17:39:00
编号为1,2,3,...,n的n 辆车顺序开进一个栈式结构的车站。试给出这n 辆车开出车站的所有可能次序。例如编号为1,2,3,4的4辆车按照push,push,pop,push,push,pop,pop,pop操作,可使的开出车站的次序为2,4,3,1。
谢谢大家!
回复列表 (共2个回复)
沙发
贺天行宝 [专家分:2300] 发布于 2006-03-16 19:52:00
真伤我自尊,我写了一刻钟的题被说成菜鸟题。。。。。。
var
s:array[1..100]of integer;
a:array[1..100]of integer;
i,j,k,l,m,n:integer;
procedure serch(k{n},m{a},i{s}:integer);
var j,temp:integer;
begin
if m=n then begin
for j:=1 to n do write(a[j],' ');
writeln;
exit;
end;{full}
if k<>n+1 then begin temp:=s[i+1]; s[i+1]:=k;serch(k+1,m,i+1); s[i+1]:=temp;end;{in}
if i<>0 then begin
temp:=a[m+1];
a[m+1]:=s[i];
serch(k,m+1,i-1);
a[m+1]:=temp;
end;{out}
end;
begin
readln(n);
serch(1,0,0);
end.
var好像多写了。。。。。。可能有错,我看起来没错
板凳
pascaler [专家分:150] 发布于 2006-03-17 18:10:00
呵呵~~我是菜鸟啊~~问的问题当然是菜鸟问题
我来回复