0001 #include "QuadListNode.h" //引入Quadlist节点类 0002 0003 template <typename T> struct Quadlist { //四联列表 0004 Rank _size; //规模 0005 QNodePosi<T> head, tail; //头哨兵、尾哨兵 0006 void init(); //初始化 0007 int clear(); //清除所有节点 0008 Quadlist() { init(); } //构造 0009 ~Quadlist() { clear(); delete head; delete tail; } //析构 0010 T remove( QNodePosi<T> p ); //删除(合法)位置p处的节点,返回被删除节点的数值 0011 QNodePosi<T> insert( T const& e, QNodePosi<T> p, QNodePosi<T> b = NULL ); //将e作为p的后继、b的上邻插入 0012 void traverse( void (* ) ( T& ) ); //遍历各节点,依次实施指定操作(函数指针,只读或局部修改) 0013 template <typename VST> void traverse ( VST& ); //遍历 0014 }; //Quadlist