0

姓、名、および値を含む単一のリンクされた電話帳リストがあります。値ではなく、作成された順序で印刷できます。どうすればこれを変更できますか? コード内で他に何かを確認する必要がある場合はお知らせください。ただし、この関数が私の主な関心事です。

ostream& operator<<(ostream& out, const PhoneBook& p)  // out stream 
{
     if(p.head==NULL) 
     {
        cout << "is empty";
     }else
     {
         PhoneBookItem* item = p.head;
         for(int i=0; i < p.num; i++)
         {
            cout << item->lastname<< " ";
            cout << item->firstname<< " : ";
            cout << item->phone<<endl;
            item = item->next;
        }
     }
    return out;
4

2 に答える 2

1

オプション 1: リストを並べ替えてから印刷する
オプション 2: ループごとに、次に印刷する項目を検索します。(高価)
オプション 3: リンク リストの代わりにハッシュ/辞書アプローチを使用します。Hash/Dictionary は
、固定配列とリンク リストの組み合わせです。
これらは、固定配列や連結リストよりも高速にアイテムを検索するのに適しています。
オプション 4: 順序/アルファベット順にデータにアクセスできるリンク リスト以外のデータ構造を使用します。

于 2013-10-01T01:49:42.873 に答える