队列中是先移动指针再加元素还是先加元素再移动指针?

最近做到一个数据结构的题目,从课本定义看来是队列中是先加元素再向后移动一个指针,但题目答案的解释意思也是先移动指针再把元素加到指针移动后的位置,现在非常迷茫

“Devil组”引证GPT后的撰写:

  • 队列是一种先进先出(FIFO)的数据结构,元素的添加和删除都是在队列的两端进行的。具体来说,元素是从队尾添加(enqueue)到队列中的,而从队头删除(dequeue)。在往队列中添加元素时,应该先向队尾移动指针,然后将元素添加到指针移动后的位置。在从队列中删除元素时,应该先取出队头元素,然后再将队头指针向后移动。
  • 这个定义是基本的队列操作。在一些特殊的队列实现中,可能会有一些变化。比如,循环队列中的元素是存储在数组中的,队尾指针可能会到达数组的末尾,但如果队头指针没有到达数组的末尾,还可以继续往数组的开头添加元素。这种情况下,元素的添加顺序会比较特殊,但仍然需要先移动队尾指针再添加元素。
不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这篇文章讲的很详细,请看:栈和优先队列——添加元素,取出元素
  • 除此之外, 这篇博客: 队列的使用及实现队列中的 向队列当中增加元素 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    在插入的时候,有两种情况:一、第一次插入:head 和 last 都是空,让 head 和 last 指向插入节点。二、非第一次插入:直接让 last.next = node; last = last.next;

    public void offer(int val) {
        Node node = new Node(val);
        if(head == null) {
            head = node;
            last = node;
        } else {
            last.next = node;
            last = last.next;
        }
    }
    

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^