入队列
入队列就是将入对节点添加到队列的尾部
举个例子:
·添加元素1。队列更新head节点的next节点为元素1节点。又因为tail节点默认情况下等于head节点,所以它们的next节点都指向元素1节点。
·添加元素2。队列首先设置元素1节点的next节点为元素2节点,然后更新tail节点指向元素2节点。
·添加元素3。队列首先设置tail节点的next节点为元素3节点。
·添加元素4。队列首先设置元素3的next节点为元素4节点,然后将tail节点指向元素4节点
做两件事:
1.将入队节点设置成当前队列尾节点的下一个节点
2.更新tail节点,如果tail节点的next节点不为空,则将入队节点设置成tail节点,如果tail节点的next节点为空,则将入队节点设置成tail的next节点,所以tail节点不总是尾节点。
上述只是单线程下
出队列
同样也是基于单线程下
并不是每次出队时都更新head节点,当head节点里有元素时,直接弹出head节点里的元素,而不会更新head节点。只有当head节点里没有元素时,出队操作才会更新head节点