标签:单链表 不同 head strong 实现 class ext data null
队列与栈一样是一种线性集合,队列与栈的不同之处在于,队列需要在两端进行操作,在用链表实现的队列中,需要在表头和表尾进行操作。
思考一下,在链表实现的队列中,入队和出队操作在表头和表尾进行有什么差异?(假设链表为单链表,head指向链表头节点,end指向链表尾节点)
先考虑入队操作,入队操作在链表头和链表尾进行操作都不会复杂:
newNode.next = head; head = newNode; newNode.next = null; end.next = newNode;
继续考虑出队操作,如果出队操作在链表头进行:
newNode = head; head = head.next; return newNode.data
如果出队操作在链表尾进行就比较麻烦了,因为我们需要将链表尾节点的上一个节点的next属性的值修改为null,我们需要遍历链表找到这个节点。
所以使用链表实现队列,最好将链表头作为队列头,将链表尾作为队列尾。
标签:单链表 不同 head strong 实现 class ext data null
原文地址:https://www.cnblogs.com/KenBaiCaiDeMiao/p/11622977.html