如果一个链表最常用的操作是在末尾插入节点和删除尾节点,为什么选用带头节点的双循环链表最省时间?
南开大学2000年试题,也有一道类似题目,某线性表中最常用的操作实在最后一个元素之后插入一个元素和删除第一个元素,则采用 仅有尾指针的单循环链表 储存方式最节省运算时间。
参考答案:问题出现在查找效率上
链表最常用的操作是在末尾插入节点和删除尾节点
在尾巴插入 删除操作:
都需要知道他的前导 而单链表要查找到最有一个元素需要遍历全部链表
双链表直接可以查到前导
最常用的操作实在最后一个元素之后插入一个元素和删除第一个元素
删除头结点 需要头指针 或者只用一个->next域就能查到 速度就快了
在有第二个条件 删除最后一个元素 有尾指针就最好了 可以直接找到尾巴元素 同时他还是循环链表 所以正好他的->next就是头结点
ok?