单链表问题


//单链表的定义方式


//复合方式
/*
链表结点类中声明链表类为友元类
可以使链表节点中的私有成员共享给链表类
方式灵活
*/
class List;
class LinkNode {
	friend class List;//声明List类为友元类
private:
	int data;
	LinkNode*link;
};
class List {
public:
	//公有成员函数
private:
	LinkNode*first;
};


//嵌套方式

/*
链表结点类为链表类的私有成员
限制了链表结点类的作用范围
*/
class List {
public:
	//成员函数
private:
	class LinkNode {   //也可以换成struct LinkNode{int data; struct LinkNode*link};
	//private:
		public:
		int data;
		LinkNode*link;
	};
	LinkNode*first;

};

//继承方式
/*
可以实现 但在逻辑上 有时不通
*/
class LinkNode {
	protected:
	int data;
	LinkNode*link;
};
class List:public LinkNode {
public:
	//函数
private:
	LinkNode*first;
};

你可能感兴趣的:(单链表问题)