Pull to refresh

Comments 7

И где здесь именно Swift? Именно особенности в Swift в отличии от тех же Java или ассемблера?

Было бы неплохо упомянть и двухсвязанные списки.

Кроме того как в односвязанных, как и в двухсвязанных нередко используют отдельный указатель tail на хвост — ускоряет операции в конце. Это тоже надо было бы упомянуть, даже если не хотели про двухсвязанные говорить.

Ну и как-то плохо, не акцентированно, проговорили какие именно задачи решают списком (стек, очередь, манипулирование данными (сортировка) без перемещений в памяти и т.п.).

Из недостатков забыли упомянуть больший размер в памяти списка по сравнению с массивом, т.к. на каждое значение хранится ещё и ссылка. Что в случае простого инта — удваивает размер. Т.е. в списках лучше хранить что-то тяжёлое. Хотя бы строки.

Ну и алтернатива на массиве — кольцевой буфер. Теже указатели head и tail, но как индексы в массиве. Но есть проблема переполнения.

особенности в Swift в отличии от тех же Java

Может быть в том, что их используют? В то время как даже автор стандартного связного списка в стандартной библиотеке Java признался, что никогда им не пользовался и не знает тех, кто бы пользовался. :)

а где и зачем их используют в Swift? :)

В то время как даже автор стандартного связного списка в стандартной библиотеке Java признался, что никогда им не пользовался и не знает тех, кто бы пользовался. :)

Я пользовался! И довольно много. Но там задачи были специфические — очень хорошо как раз на списки ложились. Незачем было велосипедить.
UFO landed and left these words here
Sign up to leave a comment.

Articles