从特定索引中取出元素

时间:2017-10-18 18:48:45

标签: java data-structures linked-list queue

我试图从LinkedNode队列中取消特定元素。这是我迄今为止从另一个方法中获得的,它只是删除并返回队列中的第一个节点(因为它应该在队列中)。我的问题是如何编辑以便它将删除索引x处的元素?我包括javadoc psudocode希望有所帮助。

from celery.schedules import crontab
from celery.task import periodic_task
from django.utils import timezone

@periodic_task(run_every=crontab(minute='*/5'))
def delete_old_foos():
    # Query all the foos in our database
    foos = Foo.objects.all()

    # Iterate through them
    for foo in foos:

        # If the expiration date is bigger than now delete it
        if foo.expiration_date < timezone.now():
            foo.delete()
            # log deletion
    return "completed deleting foos at {}".format(timezone.now())

1 个答案:

答案 0 :(得分:0)

队列是一个队列,因为它有一个enqueue和一个dequeue方法,它们分别从队列的两端添加和删除。不保证队列提供其他功能。

如果要删除中间的特定元素,可以实现在队列上执行此的算法 - 例如,将除感兴趣元素之外的每个元素出列到另一个队列中,然后将它们全部排入原始队列。

但是,如果你要从数据结构中删除中间的元素,我怀疑你真的想要使用队列。在其他数据结构上有更高效的此操作实现,例如(无约束)链接列表或索引数据结构。