уже атавизм и можно выкинуть из головы
Если задаешься такими вопросами, значит оно тебе не нужно
просто перелистываю старые тетрадки, а там какие то списки) вообще про них забыл уже
Любая структура данных нужна под конкретные задачи, это все равно, что спросить "а деревья вы используете?". Если задач нет подходящих - это не значит, что структура данных мертва
Ну знать, что это такое и как делается, просто для общего уровня не лишнее, но по факту это сейчас, по крайней мере, в дотнете всё делается библиотеками.
Если проекты тривиальные и обычные, то там можно и за годы не встретить деревья или какие-то там иные особые структуры, а если что-нибудь алгоритмическое типа оптимизации склада (WMS-системы) или логистика или ещё что-то, то можно встречать чуть ли не неделю через неделю. Тут как повезёт (ну или не повезёт).
ну в индексаторе хотя бы по индексу можно обратиться к элементу, а в списке нифига
ну технически мы с деревьями вообще постоянно работаем, просто это скрыто от нас обычно, и даже в простых проектах но в целом да - в большинстве случаев даже заморачиваться нет смысла
А есть пример, где линкедлист будет лучше массива?
Да, добавление в конец
Ну у меня бывали задачи, где прям надо было обход писать, но нечасто.
бесконечно большие чанки данных под которые блоб не выделить полноценно
Вот это уже получше
По каким критериям лучше? Вопрос будто на тостере в 2011 заданный
Описание конвейера, где каждый следующий шаг зависит от предыдущего и делается только в случае успеха предыдущего. Конкретно практический пример — пошаговый лексический разбор сообщения с разбиением на подобъекты. К следующему шагу анализа нет смысла идти и сохранять его, если на предыдущем что-то пошло не так.
В производительности конечно же
И почему здесь не применим массив?
ни разу им не пользовался. но в дотнете из коробки есть его реализация
Потому что важно сохранять последовательность и состояние?
Думаю и сами знаете, что добавление/удаление из конца/начала и без частой необходимости доставать элементы
И да, задачка очень специфическая, была на очень нишевом проекте по разбору особых кодированных сообщений для авиации. В обычных реалиях такое и правда нечасто бывает.
каждый раз когда юзаю стрингбилдер?
там точно связный лист?)
Стрингбилдер не построен на связанном списке
мне за тебя в репу дотнета сходить?
Первоначальная длина составляет 16 символов, а при нехватке места для добавления новых символов StringBuilder заменяет внутреннюю строку на строку длиною в два раза больше и копирует во вновь созданную все символы из предыдущей + новые. Удвоение длины строки приводит к линейной сложности (O(n)) по памяти, в отличие от квадратичной, которая присуща обычным строкам.
это List<T> так делает, ток там увеличение на 4 элемета
я думал там лист строк, а там просто строка
Читайте доки. Стрингбилдер построен на динамическом массиве, в .net это Лист
дак на листе или на строке?)) в том, что ты скинул, 0 слов о листе
тащусь от ILSpy, все верно увеличивает на 16 элементов
выше кинул ссылку, прошу к ознакомлению с докой вашего языка
Обсуждают сегодня