Так что я хочу точно знать, что такое фиктивный узел head/dummy (не знаю, что использовать) в связанном списке. Я нашел это на своих курсах на факультете, но без объяснений. Может ли кто-нибудь сказать мне определение и дать мне пример, может быть?Что такое Dummy Head?
ответ
Dummy-узлы больше похожи на хак и обычно используются, когда вы хотите избежать написания дополнительного кода для краевых случаев.
Рассмотрим следующий случай вставки на хвост в связанном списке:
void insertAtTail(Node node, int i){
Node new = new Node(i);
node.next = new;
return new;
}
Это прекрасно работает, когда узел не является нулевым. Но представьте сценарий, в котором мы пытаемся выполнить insertAtTail() в пустом списке. Вышеупомянутый письменный код не будет работать, если узел имеет значение NULL. Поэтому мы, чтобы обработать края случай проверки, если узел является нулевым:
Node insertAtTail(Node node, int i){
Node new = new Node(i);
if(node == null) {return new;}
node.next = new;
return new;
}
Это в сценариях, как эти, что фиктивные узлы, пригодится. Представьте Я фиктивный узел следующим образом:
Node dummy = new Node(0);
Теперь мы переходим этот фиктивный узел вызывающей функции:
insertAtTail(dummy, 5);
Когда фиктивный узел передается в вызывающую функцию, вы увидите что нет необходимости проверять, имеет ли пустая ссылка здесь null. Таким образом, мы можем пропустить проверку для пустого узла:
Node insertAtTail(Node dummy, int i){
Node new = new Node(i);
dummy.next = new;
return new;
}
Как вы можете видеть, я удалил чек на нуль здесь.
- 1. Что такое "Dummy for Loop" в C?
- 2. Что такое Git HEAD @ {x}
- 3. Что такое «git checkout HEAD ^»?
- 4. Что такое Head = Current = ptr; в (c)?
- 5. Ошибка компиляции: Dummy at (1) не может иметь инициализатор. Что такое Dummy Variable?
- 6. Что такое теоретическая основа для scikit-learn dummy классификатора?
- 7. Что такое эквивалент bzr для git clone --depth HEAD
- 8. Что такое 'remotes/remotename/HEAD' в моем клонированном Git repo?
- 9. На что указывает HEAD?
- 10. Android BaseInputConnection Dummy Mode
- 11. R: что такое NA_character_?
- 12. Эффективные переменные Dummy Collapse
- 13. Что противоположно `git diff HEAD ^`?
- 14. Что такое boot.js (dart)
- 15. Что такое теневой корень
- 16. Что такое полный объект?
- 17. Joomla dummy data import
- 18. Создание большого Dummy File
- 19. Dummy variables in R
- 20. Хорошая практика? Dummy object
- 21. Mercurial Dummy Push
- 22. Make struct member dummy
- 23. Схемы базы данных Dummy
- 24. Dummy WIA Driver
- 25. Контекст устройства Dummy Printer
- 26. Tkinter dummy window crashes
- 27. Dummy web service
- 28. R Undo Dummy Variables
- 29. ProgressDialog Box Dummy Timer
- 30. Почему hasOwnProperty (o, «dummy») является «false» после defineProperty (o, «dummy»)
См. Здесь http://www.cs.uwm.edu/faculty/boyland/classes-archive/fa15.cs351/www/linked-list-variations.html – vsoftco