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++ 中唯一不同classstruct是默认接口。如果你写:

struct MyStruct
{
    int a;
}

和:

class MyClass
{
    int a;
}

唯一的区别是a两者的领域。MyStruct现场a是公开的,现场MyClassa私人的。当然,您可以在结构和类中使用publicprivate关键字来操作它们。

如果您使用 C++ 编程,则应该使用类。

于 2013-10-05T06:51:27.063 回答
4

链表是一回事,它的节点是另一回事。节点是列表实现的一部分。它们不应该在列表的界面中可见,因此它们的形式并不重要。我会这样做

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