0001 using Rank = int; //秩 0002 template <typename T> struct ListNode; 0003 template <typename T> using ListNodePosi = ListNode<T>*; //列表节点位置 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 };