このディレクトリの索引

http://pc8.2ch.net/test/read.cgi/tech/1136768567/
#  [1] 授業単元:情報処理 
#  [2] 問題文(含コード&リンク): 
#    2つのグラフが同型であるかどうかを判定するプログラムを作成しなさい。ただし、入力データは講義で配布した形式(mat4,mat5,...)のものとする。また、次の条件を守ること。 
#  
#  * プログラムはC言語で作成して下さい。 
#  * 同型の場合はその対応(全単射)も出力すること。 
#  * 可能な限り速いプログラムを作成しなさい。例えば、各頂点の次数に着目したり、木を探索する際途中で探索しても無意味だと判明した時点でそれ以下の探索を中止するなど枝刈りを行うことで高速化できます。 
#  [3] 環境 
#   [3.1] OS: Linux 
#   [3.2] コンパイラ名とバージョン: gcc 
#   [3.3] 言語:どちらでも可 
#  [4] 期限: 2006年01月11日16:00 
#  
#  入力データ 
#  http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1426.zip 


'2つのグラフが同型であるかどうかを判定する'(_第一グラフ,_第二グラフ,[[_第一関数,_第二関数]|_単射ならび_1]) :-
        _第一グラフ =.. [_第一関数|_第一グラフの引数ならび],
        _第二グラフ =.. [_第二関数|_第二グラフの引数ならび],
        引数が同型であるかどうかを判定する(_第一グラフの引数ならび,_第二グラフの引数ならび,_単射ならび_1).

引数が同型であるかどうかを判定する([],[],[]) :- !.
引数が同型であるかどうかを判定する([_引数_1|R1],[_引数_2|R2],_単射ならび) :-
        '2つのグラフが同型であるかどうかを判定する'(_引数_1,_引数_2,_単射ならび_1),
        append(_単射ならび_1,_単射ならび_2,_単射ならび),
        引数が同型であるかどうかを判定する(R1,R2,_単射ならび_2).