Существует ли лучший способ реализовать Удалить метод для Очереди?

Я могу оценить ваши опасения, и я чувствовал себя похожим, пока не нашел IntelliJ Idea. Я понимаю, что вы спрашивали об альтернативах текстового редактора, но вы не упомянули, пробовали ли вы Idea или нет, поэтому я подумал, что упомяну это. Я обнаружил, что это глоток свежего воздуха. Это быстрый, простой в использовании и простой в настройке. Я люблю использовать это, и мне действительно показалось, что они имели в виду меня лично, когда разрабатывали это. К сожалению, это не бесплатно, но вы можете сделать пробную версию и посмотреть, нравится ли вам это на http://www.jetbrains.com/idea/download/

Если вы действительно должны использовать текстовые редакторы, я могу рекомендовать Notepad ++ и Textpad, которые мне нравились в то или иное время.

Я сейчас использую Flex Builder 3 для какой-то работы с флексом, и я надеюсь, что вы никогда не подвергаетесь этой мерзости, или вы можете навсегда отказаться от IDE :)

17
задан Dan Tao 20 October 2009 в 12:49
поделиться

2 ответа

Я думаю, что переключение на новый настраиваемый класс с внутренним LinkedList займет у вас всего несколько минут и будет гораздо более производительным, чем что у вас есть сейчас.

public class SpecialQueue<T>
{
    LinkedList<T> list = new LinkedList<T>();

    public void Enqueue(T t)
    {
        list.AddLast(t);
    }

    public T Dequeue()
    {
        var result = list.First.Value;
        list.RemoveFirst();
        return result;
    }

    public T Peek()
    {
        return list.First.Value;
    }

    public bool Remove(T t)
    {
        return list.Remove(t);
    }

            public int Count { get { return list.Count; } }
}
26
ответ дан 30 November 2019 в 12:00
поделиться

Альтернативой может быть просто оставить элементы в очереди и игнорировать их, когда вы читая с него. Примерно так:

T DequeueFiltered(HashSet<T> ignored) {
   T item;
   while (ignored.Contains(item = Dequeue())) {
      ignored.Remove(item);
   }
   return item;
}
9
ответ дан 30 November 2019 в 12:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: