我这里有个热乎的c++用类实现的,功能很齐全,在vs2010很好运行,c版本的目前没有,笔记本上貌似,你先看行不行,直接把代码上去就可以了。请采纳。
#includeusing namespace std;
typedef int datatype;
const datatype dt = -100000;//表示空值
class node;
class nodeusecount
{//node类的智能指针类
private:
friend class node;//友元,让node能够直接访问其私有成员
size_t use;//计数,表明有几个指针指向此对象
node *next;
nodeusecount(node *p):next(p),use(1){}
};
class node
{//节点类
private:
datatype data;
nodeusecount *pn;//指向此节点的指针类对象
public:
node(datatype e = dt):pn( new nodeusecount(null) ),data(e){}
node(const node& rhs):data(rhs.data),pn(rhs.pn) {++pn->use;}//复制构造函数
node& operator=(const node&);//声明赋值操作符
datatype getdata()const {return data;}
node* getnext() {return pn->next;}
void setdata(datatype e){data = e;}
void setnext(node* next) {pn->next = next;}
~node(){ if(--pn->use == 0)delete pn; }//析构函数
};
node& node::operator=(const node& rhs)
{//定义赋值操作符
++rhs.pn->use;
if(--pn->use