Получение первого элемента, добавленного в очередь как нулевое

0

эй, ребята, это мой код:

public void add(int data) {
Node n = new Node(data);         
    if (n.next == null) {
        head = tail = n; 
    } 
    else {
        tail.next = n;
        n.next = null;
        n = tail;
    }
}

когда я добавляю один элемент в новую очередь и запускаю, я перечисляю, что такое голова, хвост и список:

Output:
Head=null Tail=null {}; 

{} означает, что список пуст, когда этого не должно быть, что я делаю неправильно...

  • 0
    Вы должны пометить этот C или C ++ (в зависимости от того, что вы используете), чтобы получить больше просмотров.
  • 0
    Я новичок на сайте с точки зрения публикации, спасибо, как мне обновить поле тега
Показать ещё 1 комментарий
Теги:
queue

1 ответ

3
Лучший ответ

Я думаю, что ваша логика для вставки в очередь неправильная...

Посмотрите на алгоритм и реализацию очереди здесь.

В качестве примера попробуйте выполнить следующее:

public void add(int data) {
    Node n = new Node(data); 
    n.next = null;

    if (head == NULL) {
        head = n;
    } else {
        tail->next = n;
    }

    tail = n;
}
  • 0
    во-первых, если это должно было быть: если (голова == ноль) спасибо Rakhi

Ещё вопросы

Сообщество Overcoder
Наверх
Меню