#ifndef node_h #define node_h template <class type> class node //单链节点类 { public: type data; node<type> *link; node() : data(type()), link(null) {} node(const type &item) : data(item), link(null) {} node(const type &item, node<type> *p) : data(item), link(p) {} }; #endif 【说明】因为数据结构里用到这个结构的地方太多了,如果用原书那种声明友元的做法,那声明不知道要比这个类的本身长多少。不如开放成员,事实上,这种结构只是c中的struct,除了为了方便初始化一下,不需要任何的方法,原书那是画蛇添足。下面可以看到,链表的public部分没有返回node或者node*的函数,所以,别的类不可能用这个开放的接口对链表中的节点操作。节点类