列表是与向量相对应的另一种线性结构。与向量的顺序式存储不同,列表采用的是有每个节点间的相互引用构成的链式存储。列表的节点包含了数据域和指针域两部分。下面具体介绍抽象数据类型——列表节点(ListNode)
抽象数据接口(ADT):
1.data():读取当前节点的数据
2.pred():读取当前节点的前驱
3.succ():读取当前节点的后继
4.insertAsPred():作为当前节点的前驱插入
5.insertAsSucc():作为当前节点的后继插入
列表节点模板类(ListNode):
typedef int Rank; //定义秩
#define ListNodePosi<T> ListNode<T>* //标记列表当前位置
template <typename T> //模板类
struct ListNode //双链表形式
{
/*--成员变量--*/
T data; //节点数据
ListNodePosi<T> pred, succ; //前驱、后继
/*--构造函数--*/
ListNode() {} //针对header与tailor节点
ListNode(T e, ListNodePosi<T> p = NULL, ListNodePosi<T> s = NULL) //默认
: data(e), pred(p), succ(s){}
ListNodePosi<T> insertAsPred(T const &e); //作为当前节点的前驱插入
ListNodePosi<T> insertAsSucc(T const &e); //作为当前节点的后继插入
}
函数方

这篇博客介绍了列表作为一种线性结构,与向量的顺序存储不同,它通过节点间的引用构成链式存储。每个列表节点包含数据域和指针域,提供了读取数据、前驱和后继节点的方法,以及在节点前后插入新节点的功能。文章详细阐述了抽象数据类型 ListNode 的定义,包括其成员变量、构造函数以及向前和向后插入节点的实现。
最低0.47元/天 解锁文章
752

被折叠的 条评论
为什么被折叠?



