XOR連結リスト
リスト上の1つのノードだけが分かった状態では、そのリスト上の他のノードのアドレスは得られない。
あるノードから次のノードに移動(走査)していくには、XOR演算を2回行えばよく、どちらの方向でも同じ処理になる。{...B C D...} というリストがあって、レジスタ R1 には現在のノードのアドレス(例えば C)、レジスタ R2 には前のノード(例えば D)のアドレスと現在のノード(C)のアドレスを XOR したもの(C⊕D)が格納されているとする。このとき、次のノードのアドレスを得る処理を System/360 の命令で表すと次のようになる。
リストの終端は次のノードのアドレスがゼロであるとしておく({0 A B C...})。すなわち、A のリンクフィールドは 0⊕B となる。従って、上記の命令列の後で得られたアドレスがゼロかどうかをチェックしなければならない。この場合、リストの先頭を保持するときに A のアドレスだけを保持すればよい(1つ前のアドレスがゼロであることが自明であるため)。
別の方式として、リスト終端が走査に対して自動的に反射するようにもできる。この場合は端のノードのリンクフィールドをゼロにしておく。例えば、B から A の方向に移動してきたとき、A のリンクフィールドがゼロであれば、上記命令列を実施すると B のアドレスが得られる。ただしこの場合、リストの先頭を保持するときに A と B のアドレスを保持しておく必要がある(A だけでは次のノードのアドレスが全く分からないため)。