0

プログラミングパールから:列12:検索:
2つのコードセグメントがあります:

    IntSetList(int maxelements, int maxval)
    {   sentinel = head = new node(maxval, 0);
        n = 0;
    }
    void report(int *v)
    {   int j = 0;
        for (node *p = head; p != sentinel; p = p->next)
            v[j++] = p->val;
    }

レポート機能でセンチネルがどのように機能するのか知りたいのですが。

必要に応じて、完全なソースコードを参照してください。

ありがとう、

4

1 に答える 1

1

sentinelリストの最後のポインタが持つと予想される値です。nextこれは、メンバーが何も指していないときに持つ価値です。リストの最初の「ダミー」ノードを指すように初期化されます。新しいアイテムが最初に挿入されるので、番兵は最後にドリフトします。

于 2012-08-03T03:37:44.183 に答える