このディレクトリの索引

木作成(_整数ならび) :-
    abolish(節/4),
    節作成(_整数ならび,1,1,_).

木作成([],_,_,_).
木作成([_値|R],_節,_開始節番号,_次の節番号) :-
    節作成(_値,_節,_開始節番号,_受取節番号),
    木作成(R,_節,_受取節番号,_次の節番号).

節作成(_値,_節,_受取節番号,_次の節番号) :- 
    not(節(_節,_,_,_)),
    _下 is _受取節番号+1,
    _右 is _受取節番号+2,
    _次の節番号 is _受取節番号+3,
    assertz(節(_節,_下,_右,_値)),!.
節作成(_値,_節,_受取節番号,_次の節番号) :-
    節(_節,_下,_右,_値2),
    _値 >= _値2,
    節作成(_値,_下,_受取節番号,_次の節番号).
節作成(_値,_節,_受取節番号,_次の節番号) :-
    節(_節,_下,_右,_値2),
    _値 < _値2 ,
    節作成(_値,_右,_受取節番号,_次の節番号).