Почему это происходит, когда мы пытаемся создать отдельный список, мы делаем Head NULL в классе и не делаем Next of the Head как Null. В функциях связанных списков почему мы делаем Next из узлов Null и не делаем Node Null?Почему мы делаем head null в одиночном списке?
ответ
Во избежание отходов. Узел списка предназначен для хранения внутри него элемента. Представьте, если бы у вас был пустой список в предложенном вами сценарии, где *
обозначает главу списка. Мы хотели бы начать с:
[*???]->NULL
Где ???
просто некоторая фиктивная переменная для неиспользуемого элемента. Мы уже тратить узел списка, когда мы могли бы просто сделать это:
*NULL
Аналогично, если мы рассмотрим непустой список, мы могли бы с вашим делом:
[*123]->[456]->[789]->[???]->NULL
... когда мы могли бы просто:
[*123]->[456]->[789]->NULL
конечно, вы могли бы увеличить это перезаписать эту фиктивную переменную, если размер списка от 0 до 1, но теперь включает в себя дополнительное ветвление и так далее, и мы в конечном итоге получить более сложное nструкции и накладные расходы на обработку.
Так что этого очень мало, и это может быть очень много, чтобы быть потерянным.
В функциях, касающихся связанных списков, почему мы делаем Next из узлов Null и не делаем Node Null?
Я не совсем понял эту часть. Если мы говорим о вставке нового узла в списке, например, мы могли бы это:
[new node: 456]->??? [*123]->NULL
Затем, чтобы она указывала на голове:
[new node: 456]->[*123]->NULL
... а затем сделайте головную точку новым узлом.
[*456]->[123]->NULL
Так должно быть, как правило, не раз, когда вы устанавливаете следующий указатель узла в нуль, если это не в голове, которая случается быть пустым, или в ответ на удаление хвоста.
- 1. Поиск цикла в одиночном списке
- 2. Перемещение назад в одиночном списке?
- 3. Почему мы делаем это с указателем стека?
- 4. Почему мы не делаем все статичным?
- 5. Как сделать метод обновления в одиночном списке?
- 6. Какое тестирование мы делаем?
- 7. Удаление петли в одиночном списке
- 8. Почему мы можем использовать Node head = null без создания экземпляра 'head' в Java?
- 9. Обмен двумя узлами в одиночном списке
- 10. Поменять место в одиночном списке в C
- 11. Правильно ли мы делаем DMZ?
- 12. Почему мы не делаем PChar ('*') в Delphi 7?
- 13. Печать в обратном круговом одиночном связанном списке
- 14. Удаление последнегоNode в одиночном личном списке
- 15. Сохранение нескольких данных в одном узле в одиночном списке
- 16. C - Сменить первый и последний элемент в одиночном списке
- 17. не удается удалить узел в одиночном списке
- 18. Segfault при доступе к следующему узлу в одиночном списке
- 19. Что не так с реализацией учебника в одиночном списке?
- 20. Как поменять местами два узла в одиночном списке, построенных назад?
- 21. Почему мы делаем Амортизированный анализ для кучи Фибоначчи?
- 22. почему мы это делаем, push cs pop es?
- 23. Удалите второе появление определенного объекта в одиночном списке
- 24. Поиск цикла в одиночном списке с javascript (эффективное решение)
- 25. Единственный список, почему список пуст (head == NULL)?
- 26. Удаление узла в одиночном списке ссылок
- 27. Как использовать Stack в одиночном списке
- 28. C Функция оставить только уникальные узлы в одиночном списке
- 29. Почему мы вызываем null String?
- 30. Что происходит, когда мы делаем networkstream.write()?
Ваш вопрос не совсем ясен. Объясните. –
Почему мы делаем Head = Null, а не Head-> next = Null? –
Чтобы вы могли проверить, пуст ли пул, проверьте, есть ли 'head == null'. Вы можете установить «head-> next = null», если уже есть первый элемент, на который указывает точка. – m69