课程笔记 06:数据结构(清华) 列表-节点

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

列表是与向量相对应的另一种线性结构。与向量的顺序式存储不同,列表采用的是有每个节点间的相互引用构成的链式存储。列表的节点包含了数据域和指针域两部分。下面具体介绍抽象数据类型——列表节点(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); //作为当前节点的前驱插入</

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值