单循环链表头指针和尾指针的区别

以如下题目为例:

某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用( D )存储方式最节省运算时间。【南开大学2000 一、3】

A.单链表 B.仅有头指针的单循环链表 C.双链表 D.仅有尾指针的单循环链表

单链的循环链表结点的存储结构和单链表的存储结构一样,所不同的是:最后一个结点的 next 域指向头结点,而不是“空”。这样,由表尾很容易找到表头。

但若链表较长,则由表头找到表尾较费时,因而,单循环链表往往设立尾指针而不是头指针。

单循环链表都是最后一个结点的指针域指向头结点,所谓头指针和尾指针的区别就是头指针指向头结点,尾指针指向尾结点。

查找工作一般从指针开始,因此,对于仅有头指针的单循环链表而言,若是在最后一个元素之后插入一个元素,则需要从头指针开始,一直找到尾结点,时间复杂度为O(n),若是删除第一个元素,则从头指针开始,找到表头就可以了,时间复杂度为O(1);

对于仅有尾指针的单循环链表而言,若是在最后一个元素之后插入一个元素,则从尾指针找到最后一个元素,时间复杂度为O(1),若是删除第一个元素,则从头指针开始,找到表头就可以了,时间复杂度为O(1);

对于双链表,删除和插入操作都很方便,但是由于其每个结点有两个指针,运算时间相较于单循环链表还是较多的。

因此,选择带有尾指针的单循环链表最好。

带头结点头指针与带头结点尾指针的学习 - 简书 (jianshu.com)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值