数据结构中循环队列的长度

知循环队列的存储空间为数组data[21],且头指针和尾指针分别为8和3,则该队列的当前长度(17)
这个有个公式是(R-F)%21不就等于16个元素吗

因为尾指针在头指针之前,所以从头指针到数组的结尾都存满了数据,21-8=13,因为数组索引从0开始,所以尾指针为3则代表有4个元素,13+4=17

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 以下回答来自chatgpt:

    循环队列长度的计算公式为(R-F)%21(其中R为队尾指针的位置,F为队头指针的位置,21为数组data的长度)。根据所提供的信息,队列的头指针为8,尾指针为3,所以根据公式计算得到长度为16。具体解决方案如下:

    #定义循环队列
    data <- numeric(21)
    head_ptr <- 8
    tail_ptr <- 3
    
    #计算长度
    length <- (tail_ptr - head_ptr + 21) %% 21
    
    #输出结果
    print(length)
    

    输出结果为16,说明该队列的长度为16个元素。


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