最近、私はこれを見ました:
struct node {
node* pNext;
node** pPrevNext;
};
void insert_before(node** pNext, node* toInsert) {
toInsert->pNext = *pNext;
toInsert->pPrevNext = pNext;
if (*pNext) (*pNext)->pPrevNext = &toInsert->pNext;
*pNext = toInsert;
};
// node *a, *b;
// insert_before(a->pPrevNext, b);
単一リンク リストのように見えますが、前のノードの次のポインターへのポインターが含まれています。私の質問は簡単です:これは何と呼ばれていますか? その「本当の名前」がなければ、このデータ構造に関する情報の検索は、StackOverflow やインターネット全体で空っぽになります。
これは二重にリンクされたリストではないことに注意してください。これは次のようになります。
struct node {
node* pNext;
node* pPrev;
};