基于圆形阵列的队列

时间:2012-12-14 17:06:08

标签: queue

我是否知道有没有办法将项目从圆形数组中的某个索引中出列?

实施例 想象一下这是一个圆形阵列......

  
    

1 --- --- 2-3 4-5 --- 6--7-8
    | 11 | 76 | 45 | 32 | 32 | 16 | 21 | 8 |

  
     

出列索引3

     
    

1 --- --- 2-3 4-5 --- 6--7-8
    | 11 | 76 | 45 | 32 | 32 | 16 | 21 | 8 |

         

1 --- --- 2-3 4-5 --- 6--7-8
    | 11 | 76 | EM | 32 | 32 | 16 | 21 | 8 |

  
     

EM代表空。

     

出列索引8

     
    

1 --- --- 2-3 4-5 --- 6 --- 7--8
    | 11 | 76 | EM | 32 | 32 | 16 | 21 | EM |

  

有办法吗?或者我是否需要将所有这些转移到一起然后它会起作用? 谢谢。

1 个答案:

答案 0 :(得分:0)

在大多数编程语言中,当您想要删除元素时,您必须移动所有后续元素。但是,大多数编程语言都没有提供像“圆形阵列”这样的概念。

如果不使用数组,而是使用链接列表,则可以将前一个元素之前的元素中的链接更改为指向后续元素(在一个元素出队之后)。这对于线性链表和循环链表都有效。