只有表头指针的循环单链表 插入元素问题

只有表头指针的循环单链表 插入元素问题
如果对线性表的操作只有两种,即删除第一个元素,在最后一个元素后面插入新元素,则最好使用()
A只有表头指针没有表尾指针的循环单链表
B 只有表尾指针没有表头指针的循环单链表
C非循环双链表
D循环双链表
答案选B 我能理解 但觉得A也对,有表头指针也就意味着知道头结点,而循环链表最后结点指向头结点,也就是最后结点的指针域是已知的(头结点),插入元素的话修改下最后指针的指针域不就可以了么。A答案错在哪?
windff 1年前 已收到1个回答 举报

hn_hyan 幼苗

共回答了23个问题采纳率:82.6% 举报

循环单链表指的是最后节点的指针域指向表头节点,那么如果要删除第一个元素,则只需要通过表尾指针找到第二个节点,然后将最后节点的指针指向第二个节点,这样就将第一个元素删除了,而在最后一个元素后面插入新元素也很简单,先找到表头,然后将新元素的指针域指向表头,然后再将表尾指向新元素就完成了,算法的复杂度为O(1)
而如果是只有表头指针,那么它必须遍历整个链表才能找到表尾,然后完成新元素的插入,也就是说再插入时的算法复杂度为O(n),n为链表长度
所以比较起来B更好

1年前

10
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 16 q. 0.022 s. - webmaster@yulucn.com