对链表更好的结构或类?

时间:2013-10-05 06:45:40

标签: c++

用于实现更好的链表

使用结构

#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 ++中进行链表?

2 个答案:

答案 0 :(得分:3)

classstruct在C ++中唯一不同的是默认接口。如果你写:

struct MyStruct
{
    int a;
}

class MyClass
{
    int a;
}

唯一的区别是a字段。在MyStruct字段a是公开的,MyClass字段a是私有的。当然,您可以使用结构和类中的publicprivate关键字对它们进行操作。

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

答案 1 :(得分:2)

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

class List
{
private:
    struct Node
    {
        int data;
        Node* next;
    };
public:
    ...
};