09/07/30 06:08:46
>>583
% Prolog
t583(_文字列) :-
atom_chars(_文字列,Chars),
t583_1(Chars,[],QL),
member([U,Q-[]],QL),
concat_atom(Q,S),
write_formatted('%t: %t\n',[U,S]),
fail.
t583(_).
t583_1([],X,X).
t583_1([A|R],QL,X) :-
t583_2(A,QL,QL2),
t583_1(R,QL2,X).
t583_2(A,[],[[A,QA]]) :-
新しいキューを作る(Q),
キューに要素を追加する('*',Q,QA),!.
t583_2(A,[[A,QA]|R],[[A,QB],R]) :-
キューに要素を追加する('*',QA,QB),!.
t583_2(A,[U|R1],[U|R2]) :-
t583_2(A,R1,R2).
新しいキューを作る(X-X).
キューに要素を追加する(_要素,X-[_要素|Y],X-Y).