9

より良い連結リストの実装について

構造の使用

#include <iostream>

using namespace std;

struct Node {
    int data;
    Node* next;
};

クラスの使用

class ListNodeClass
   {
   private:
      ItemType Info;
      ListNodeClass * Next;
   public:

      ListNodeClass(const ItemType & Item, ListNodeClass * NextPtr = NULL):
         Info(Item), Next(NextPtr)
            {
            };
      void GetInfo(ItemType & TheInfo) const;
   friend class ListClass;   
   };

typedef ListNodeClass * ListNodePtr;

または、C++ でリンクされたリストを実行するためのより良い方法はありますか?

4

2 に答える 2

5

C++ でclassとが異なる唯一の点は、デフォルト インターフェイスです。structあなたが書く場合:

struct MyStruct
{
    int a;
}

と:

class MyClass
{
    int a;
}

唯一の違いはa、両方のフィールドです。In MyStructfieldaは public で、in MyClassfieldaは private です。もちろん、構造体とクラスの両方でpublicandキーワードを使用してそれらを操作できます。private

C++ でプログラミングしている場合は、クラスを使用する必要があります。

于 2013-10-05T06:51:27.063 に答える
4

リンクされたリストとそのノードは別物です。ノードはリストの実装の一部です。それらはリストのインターフェースに表示されるべきではないので、それらの形式は実際には重要ではありません. 私はこれをするだろう

class List
{
private:
    struct Node
    {
        int data;
        Node* next;
    };
public:
    ...
};
于 2013-10-05T06:49:54.557 に答える