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