Добавление и удаление элемента из очереди - C#

Узнай цену своей работы

Формулировка задачи:

Есть три очереди, с размерностями 13, 19, 19 Когда добавляю элементы в очереди (в конец), я добавляю сразу во все очереди одновременно. Как только количество элементов достигает 12 — появляется сообщение о том, что индекс находился за границей массива.
Листинг программы
  1. public void Enqueue(object v) // добавление в конец очереди
  2. {
  3. int i = 0;
  4. //try
  5. //{
  6. while (listt[i] != null)
  7. {
  8. if (i == capacity - 1)
  9. capacity += 1;
  10. i++;
  11. }
  12. listt[i] = v;
  13. count++;
  14. //}
  15. //catch
  16. //{
  17. // Console.WriteLine("NO");
  18. //}
  19. }
Добавил try catch (то, что закомментировано выше в коде), не работает удаление элементов из начала очереди:
Листинг программы
  1. public object Dequeue() // возврат с удалением
  2. {
  3. object elem;
  4. elem = listt[0];
  5. int i = 0;
  6. //try
  7. //{
  8. while (listt[i + 1] != null)
  9. {
  10. listt[i] = listt[i + 1];
  11. i++;
  12. }
  13. listt[i] = null;
  14. count--;
  15. return elem;
  16. //}
  17. //catch
  18. //{
  19. // Console.WriteLine("No");
  20. //return 0;
  21. //}
  22. }
С добавлением try catch не удаляет элементы вообще. Помогите разобраться, пожалуйста

Решение задачи: «Добавление и удаление элемента из очереди»

textual
Листинг программы
  1.  public void Enqueue(object v) // добавление в конец очереди
  2.         {
  3.             int i = 0;          
  4.                 while (listt[i] != null)
  5.                 {                    
  6.                     if (i == capacity - 1)
  7.                         capacity += 1;
  8.                     i++;
  9.                     if (i >= capacity) break;
  10.                 }
  11.                 listt[i] = v;
  12.                 count++;          
  13.         }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.273 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут