Вопросы с тегом «list»

48
Что может быть недостатком для определения класса как подкласса списка самого себя?

В моем недавнем проекте я определил класс со следующим заголовком: public class Node extends ArrayList<Node> { ... } Однако, после обсуждения с моим профессором CS, он заявил, что урок будет «ужасным для памяти» и «плохой практикой». Я не обнаружил, что первое особенно верно, а второе...

40
Какая польза от .Any () в C # List <>?

Я обсуждал это с коллегами, и мы не могли понять, какая польза от них .Anyдля List<>C #. Вы можете проверить правильность элемента в массиве, как следующий оператор: if (MyList.Any()){ ...} //Returns true or false Что точно так же, как if (MyList.Count() != 0) { ... } и является гораздо более...

31
Почему Python делает копию отдельного элемента только при итерации списка?

Я только что понял, что в Python, если кто-то пишет for i in a: i += 1 Элементы исходного списка aфактически не будут затронуты вообще, поскольку переменная iоказывается просто копией исходного элемента в a. Для того, чтобы изменить оригинальный элемент, for index, i in enumerate(a): a[index] += 1...

26
Есть ли практический способ для неизменной структуры связанных узлов?

Я решил написать односвязный список, и у меня был план сделать внутреннюю структуру узлов неизменной. Я столкнулся с загадкой, хотя. Скажем, у меня есть следующие связанные узлы (из предыдущих addопераций): 1 -> 2 -> 3 -> 4 и сказать, что я хочу добавить 5. Чтобы сделать это, так как узел...

22
Почему списки минусов связаны с функциональным программированием?

Я заметил, что большинство функциональных языков используют односвязный список (список «минусов») в качестве наиболее фундаментальных типов списков. Примеры включают Common Lisp, Haskell и F #. Это отличается от основных языков, где родные типы списков являются массивами. Почему это? Для Common...

22
Должен ли я использовать список или массив?

Я работаю над формой окна для расчета UPC для номеров позиций. Я успешно создал один, который будет обрабатывать один номер элемента / UPC за раз, теперь я хочу расширить и сделать это для нескольких номеров элементов / UPC. Я начал и попытался использовать список, но я продолжаю застрять. Я создал...

18
Каковы конкретные правила использования связанного списка вместо массива?

Связанный список может использоваться, когда вы хотите дешевую вставку и удаление элементов, и когда не имеет значения, что элементы не находятся рядом друг с другом в памяти. Это очень абстрактно, и я хотел бы получить конкретное объяснение того, почему следует использовать связанный список, а не...

14
Найдите «дыру» в списке чисел

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

13
Поддержка C ++ 11 для функций списка высшего порядка

Большинство функциональных языков программирования (например , Common Lisp, Scheme / ракетки, Clojure, Haskell, Scala, Ocaml, SML) поддерживают некоторые общие функции высшего порядка в списках, такие как map, filter, takeWhile, dropWhile, foldl, foldr(см , например , Common Lisp, Scheme / Ракетка,...

13
Почему добавление к списку в Scala имеет O (n) сложность по времени?

Я только что прочитал, что время выполнения операции добавления для List(: +) растет линейно с размером List. Присоединение к a Listкажется довольно обычной операцией. Почему идиоматический способ сделать это состоит в том, чтобы предварительно добавить компоненты, а затем перевернуть список? Это...

11
Происхождение общих имен функций обработки списка

Некоторые функции более высокого порядка для работы со списками или массивами неоднократно применялись или переизобретались. Функции отображения , сложите [ л | r ] и фильтр находятся вместе в нескольких языках программирования, таких как Scheme, ML и Python, которые, похоже, не имеют общего...

11
Должны ли связанные списки всегда иметь хвостовой указатель?

Мое понимание... Преимущества: Вставка в конце O (1) вместо O (N). Если список является двусвязным списком, то удаление с конца также означает O (1) вместо O (N). Недостаток: Занимает тривиальное количество дополнительной памяти: 4-8 байт . Исполнитель должен следить за хвостом. Глядя на эти...