今天学到一种方法struct node{address_t m_prev,address_t m_next,address_t m_data};其中address_t其实就是一种地址,可以这样定义#define address_t unsigned long并且address_t也可以换成offset_t,表示针对某个位置的偏移。节点中保存的就是地址,使用节点的时候,其实就是获得这个节点指向的内存单元的值,然后根据自己想得到的类型,进行强制转换就可以了。比如说,一个节点,里面保存的地址指向的是long型,那么就是node* pNode = NULL;/*获取pNode*/...long lTmp = *(long *)(pNode->m_data);然而实际上的其实更加复杂。比如说,有可能节点中保存的不是地址,而是针对某个基地址的偏移,然而道理都是一样的。这样的话,设计树的人,只要考虑到树的实现算法,而不用据泥于树的节点里面到底要存什么。要存什么东西,由使用树的人根据自己的需要往里面存取即可。