通常の 2 つ (next と prev) ではなく、アイテムごとに 1 つのポインター値 np[x] のみを使用して、二重にリンクされたリストを実装する方法を説明してください。すべてのポインター値は k ビットの整数として解釈できると仮定し、np[x] を np[x] = next[x] XOR prev[x]、next[x の k ビットの「排他的論理和」であると定義します。 ]および前[x]。(値 NIL は 0 で表されます。) リストの先頭にアクセスするために必要な情報を必ず記述してください。このようなリストに SEARCH、INSERT、および DELETE 操作を実装する方法を示します。そのようなリストを O(1) 時間で逆にする方法も示します。
出典: Cormen 第 3 版の CLRS 10.2-8
PS: これは宿題の質問ではありません。私はデータ構造を練習/修正しています。