数据结构——列表

1.列表节点ADT接口

操作接口功能
data()当前节点所存数据对象
pred()当前节点前驱节点的位置
succ()当前节点后继节点的位置
insertAsPred(e)插入前驱节点,存入被引用对象e,返回新节点位置
insertAsSucc(e)插入后继节点,存入被引用对象e,返回新节点位置
typedef int Rank
#define ListNodePosi(T) ListNode<T>* //列表节点位置

template <typename T> struct ListNode {
	T data; ListNodePosi(T) pred; ListNodePosi(T) succ; //数值、前驱、后继
	ListNode () {}
	ListNOde (T e, ListNodePosi(T) p = NULL, ListNodePosi s = NULL) : data(e), pred(p), succ(s) {}
	ListNodePosi(T) insertAsPred(T const& e); //紧靠当前节点之前插入新节点
	ListNodePosi(T) insertAsSucc(T const& e); //紧靠当前节点之后插入新节点
};

2.列表ADT接口

操作接口功能
size()报告列表当前的规模(节点总数)
first()、last()返回首、末节点的位置

insertAsFirst(e)

insertAsLast(e)

将e当作首、末节点插入

insertA(p, e)

insertB(p, e)

将e当作节点p的直接后继、前驱插入
remove(p)删除位置p处的节点,返回其数值
disordered()判断素有节点是否已按非降序排列
sort()调整各节点的位置,使之按非降序排列
find(e)查找目标元素e,失败时返回NULL
search(e)查找目标元素e,返回不大于e且秩最大的节点(有序列表)
deduplicate()剔除重复节点
uniquify()剔除重复节点 (有序列表)
traverse()遍历并统一处理所有节点,处理方法由函数对象指定

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值