|
Заблокирован
|
||||||
Приведите пример реализации списка16.01.2017, 19:47. Показов 2583. Ответов 42
Метки нет (Все метки)
как я понял по своей сути список отличается от массива тем что список исспользует не фиксированный размер памяти и располагается в динамической памяти...
ну те список=массив написанный кодом. можно пример найпройстейшего списка пытался типа так
0
|
||||||
| 16.01.2017, 19:47 | |
|
Ответы с готовыми решениями:
42
Привести пример реализации любого линейного списка списка с использованием лишь структур Приведите пример. |
|
Каждому свое
533 / 219 / 81
Регистрация: 05.08.2013
Сообщений: 1,614
|
||
| 16.01.2017, 20:01 | ||
|
abrdabr_ne_ssv,
Массив тоже может располагаться в динамической памяти. Такие массивы и называются - динамическими. Различия между массивом и списком просты - структуризация в памяти. У массива(без разницы динамического или статического) все элементы в памяти располагаются на смежных ячейках. У списка элемент имеет указатель на следующий элемент, этот следующий элемент имеет указатель на другой следующий элемент и тд. Бывают двухсвязные и односвязные списки. Из названия понятно, что односвязные списки являются такими списками, у которых каждый элемент имеет указатель на следующий. А двухсвязный список является таким списком, у которого каждый элемент имеет указатель на следующий и предыдущий. Так как разговор идет с упоминанием указателем, следует сразу сделать вывод, что список располагается в динамической памяти. А так в google много теории об этом. Посмотри
0
|
||
|
Заблокирован
|
|
| 16.01.2017, 20:10 [ТС] | |
|
Bretbas, ну я тоже люблю людей на гугл посылать)))))))))
но про динамические массивы в моём учебнике пока не написано.... но тогда в чём преимущество списка перед массивом? те полагается что список юзается для чаров?(это я о двунаправленности) ну хотя я не представляю каким образом может исспользоватся двунаправленный список...
0
|
|
|
Каждому свое
533 / 219 / 81
Регистрация: 05.08.2013
Сообщений: 1,614
|
||
| 16.01.2017, 20:19 | ||
|
abrdabr_ne_ssv,
К примеру доступ к элементу массива осуществляется быстрее, чем в списке, так как чтобы добраться до нужного элемента списка нужно пройти несколько итераций через указатели элементов. А вставка, удаление элементов списка осуществляется быстрее, чем в массиве, так как чтобы вставить/удалить элемент в массиве, нужно сдвигать все элементы, правее вставляемого/удаляемого, и только потом вставлять. В списке это делается проще - просто передаются указатели на новый элемент. И еще много много различий Говорю, почитай в инетеВсе зависит от задачи
0
|
||
|
Неэпический
|
|
| 16.01.2017, 20:22 | |
|
0
|
|
|
Заблокирован
|
|
| 16.01.2017, 20:33 [ТС] | |
|
Bretbas, всёравно не понимаю,- почему тупо не сдвигать массив по типу arr[0]+4
но суть не в этом, (лично я не представляя работы списка в должной мере, и значит не собираюсь его применять) но понимать то его я обязан)) те концепция списка в первом посте верна? ну те создаётся тупой класс с двумя переменными где одна выступает как ключ а вторая как значение? &&& чисто из любопытства возможно ли создать числовой объект класса? да, да будут конфликты... но меня интересует лишь возможность.
0
|
|
|
Неэпический
|
|||||
| 16.01.2017, 20:39 | |||||
![]() В массиве данные лежат в памяти последовательно, один за другим. В списке элементы могут располагаться в памяти как угодно, но они связаны указателями.
0
|
|||||
|
Заблокирован
|
|
| 16.01.2017, 20:53 [ТС] | |
|
Croessmah, ну arr[0]+4 это же не arr[4] а сдвиг на 4 байта (так в учебнике написано)
то есть массив от списка, грубо говоря, отличается тем что массив это "одна большая переменная" а список не имеет определённого размера до map я не дошёл и надеюсь они простые.... но что же такое список???? я читал честно... по учебнику это типа кольцевой класс где в качестве ключей есть сцылки на следующий класс но зачем в качестве ключей давать неподконтрольные данные? когда можно их контролировать ну типа class 1(....); // это объявление объекта 1 класса class
0
|
|
|
Неэпический
|
||||||
| 16.01.2017, 20:58 | ||||||
![]() Конечно списки бывают кольцевые, но то что Вы написали явно не то. И укажите точно где.
0
|
||||||
|
Заблокирован
|
||||||
| 16.01.2017, 21:07 [ТС] | ||||||
|
Croessmah, зашибись,- на вопрос получаю вопрос.... но у меня есть оправдание,- я не знаю с++ ваше оправдание видимо "непонятность моих слов".... ну типа что такое дао? ну дао это дао. для совсем тупых дао это то что не является не дао. круть спс))) написал код
если честно меня так и тянет загугуглить "форум для программистов - ceberforym"
0
|
||||||
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
|
| 16.01.2017, 21:11 | |
|
0
|
|
|
Заблокирован
|
|
| 16.01.2017, 21:14 [ТС] | |
|
Renji, очень тупой вопрос который мне ни чем не поможет и никогда не пригодится,- почему последовательный сдвиг занимает больше времени чем рандомный доступ? (ну про память мы как я понял)
0
|
|
|
Неэпический
|
|||
| 16.01.2017, 21:20 | |||
|
Правильно заданный вопрос - половина ответа. Как сможете внятно объяснить, так и будем отвечать. А пока какие-то ключи, неподконтрольные данные, кольцевые классы... Добавлено через 3 минуты Массив (структура данных) - это не один объект, а 100500 объектов, которые лежат друг за другом. Так что чтобы вставить в начало один элемент, нужно сначала "сдвинуть" 100500 элементов дальше, а значит нужно произвести 100500 копирований/перемещений, прежде, чем заменить первый элемент.
0
|
|||
| 16.01.2017, 21:22 | ||
|
0
|
||
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
||
| 16.01.2017, 21:24 | ||
|
Если же у вас список, то элементы раскиданы по всей квартире и на каждом висит записка "нашел сапоги? Молодец. Ну а зонтик ты на кухне оставил". Хотите выдернуть зонтик - меняете записку с "зонтик на кухне" на "куртка на люстре". А снимать куртку с люстры уже не обязательно. При этом, понятное дело, если вам нужна конкретно куртка, вы замучаетесь бегать по всей квартире и собирать записки в поисках той, в которой про куртку написано.
0
|
||
| 16.01.2017, 21:26 | |
|
Не по теме: _Ivana, Renji, во вы жути нагнали. :D
0
|
|
|
Заблокирован
|
||||||
| 16.01.2017, 21:29 [ТС] | ||||||
|
0
|
||||||
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
||
| 16.01.2017, 21:30 | ||
|
0
|
||
|
Заблокирован
|
|
| 16.01.2017, 21:32 [ТС] | |
|
_Ivana, согласно условию задачи выиграл я тк другие участники андефине)))))))) но где смысл ? полагаю ваш пример где список состоит из двух элементов но почему это не массив? где конечный пункт известен?
0
|
|
|
Неэпический
|
||||||||||
| 16.01.2017, 21:33 | ||||||||||
|
А вот еще сюрприз:
0
|
||||||||||
| 16.01.2017, 21:33 | |
|
Помогаю со студенческими работами здесь
20
Приведите пример инвариантности Приведите пример,вывод
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога
Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|