浅析用链表实现的队列
Posted kenbaicaidemiao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了浅析用链表实现的队列相关的知识,希望对你有一定的参考价值。
队列与栈一样是一种线性集合,队列与栈的不同之处在于,队列需要在两端进行操作,在用链表实现的队列中,需要在表头和表尾进行操作。
思考一下,在链表实现的队列中,入队和出队操作在表头和表尾进行有什么差异?(假设链表为单链表,head指向链表头节点,end指向链表尾节点)
先考虑入队操作,入队操作在链表头和链表尾进行操作都不会复杂:
newNode.next = head; head = newNode; newNode.next = null; end.next = newNode;
继续考虑出队操作,如果出队操作在链表头进行:
newNode = head; head = head.next; return newNode.data
如果出队操作在链表尾进行就比较麻烦了,因为我们需要将链表尾节点的上一个节点的next属性的值修改为null,我们需要遍历链表找到这个节点。
所以使用链表实现队列,最好将链表头作为队列头,将链表尾作为队列尾。
以上是关于浅析用链表实现的队列的主要内容,如果未能解决你的问题,请参考以下文章