0001 template <typename T> struct ListNode; 0002 template <typename T> using ListNodePosi = ListNode<T>*; //列表节点位置 0003 template <typename T> struct ListNode { //列表节点模板类(以双向链表形式实现) 0004 // 成员 0005 T data; ListNodePosi<T> pred, succ; //数值、前驱、后继 0006 // 构造函数 0007 ListNode() {} //针对header和trailer的构造 0008 ListNode ( T e, ListNodePosi<T> p = NULL, ListNodePosi<T> s = NULL ) 0009 : data( e ), pred( p ), succ( s ) {} //默认构造器 0010 // 操作接口 0011 ListNodePosi<T> insertAsPred( T const& e ); //紧靠当前节点之前插入新节点 0012 ListNodePosi<T> insertAsSucc( T const& e ); //紧随当前节点之后插入新节点 0013 };