Заблокирован
|
||||||
1 | ||||||
Приведите пример реализации списка16.01.2017, 19:47. Показов 2031. Ответов 42
Метки нет (Все метки)
как я понял по своей сути список отличается от массива тем что список исспользует не фиксированный размер памяти и располагается в динамической памяти...
ну те список=массив написанный кодом. можно пример найпройстейшего списка пытался типа так
0
|
16.01.2017, 19:47 | |
Ответы с готовыми решениями:
42
Приведите простейший пример реализации диалога Привести пример реализации любого линейного списка списка с использованием лишь структур Приведите пример. Приведите пример инвариантности |
Каждому свое
533 / 219 / 81
Регистрация: 05.08.2013
Сообщений: 1,614
|
|
16.01.2017, 20:01 | 2 |
abrdabr_ne_ssv,
Нет, не так вы поняли.
Массив тоже может располагаться в динамической памяти. Такие массивы и называются - динамическими. Различия между массивом и списком просты - структуризация в памяти. У массива(без разницы динамического или статического) все элементы в памяти располагаются на смежных ячейках. У списка элемент имеет указатель на следующий элемент, этот следующий элемент имеет указатель на другой следующий элемент и тд. Бывают двухсвязные и односвязные списки. Из названия понятно, что односвязные списки являются такими списками, у которых каждый элемент имеет указатель на следующий. А двухсвязный список является таким списком, у которого каждый элемент имеет указатель на следующий и предыдущий. Так как разговор идет с упоминанием указателем, следует сразу сделать вывод, что список располагается в динамической памяти. А так в google много теории об этом. Посмотри
0
|
Заблокирован
|
|
16.01.2017, 20:10 [ТС] | 3 |
Bretbas, ну я тоже люблю людей на гугл посылать)))))))))
но про динамические массивы в моём учебнике пока не написано.... но тогда в чём преимущество списка перед массивом? те полагается что список юзается для чаров?(это я о двунаправленности) ну хотя я не представляю каким образом может исспользоватся двунаправленный список...
0
|
Каждому свое
533 / 219 / 81
Регистрация: 05.08.2013
Сообщений: 1,614
|
|
16.01.2017, 20:19 | 4 |
abrdabr_ne_ssv,
Преимущества никакого. Просто для каждый из этих контейнеров подходит для своего круга задач.
К примеру доступ к элементу массива осуществляется быстрее, чем в списке, так как чтобы добраться до нужного элемента списка нужно пройти несколько итераций через указатели элементов. А вставка, удаление элементов списка осуществляется быстрее, чем в массиве, так как чтобы вставить/удалить элемент в массиве, нужно сдвигать все элементы, правее вставляемого/удаляемого, и только потом вставлять. В списке это делается проще - просто передаются указатели на новый элемент. И еще много много различий Говорю, почитай в инете Все зависит от задачи
0
|
Неэпический
|
|
16.01.2017, 20:22 | 5 |
0
|
Заблокирован
|
|
16.01.2017, 20:33 [ТС] | 6 |
Bretbas, всёравно не понимаю,- почему тупо не сдвигать массив по типу arr[0]+4
но суть не в этом, (лично я не представляя работы списка в должной мере, и значит не собираюсь его применять) но понимать то его я обязан)) те концепция списка в первом посте верна? ну те создаётся тупой класс с двумя переменными где одна выступает как ключ а вторая как значение? &&& чисто из любопытства возможно ли создать числовой объект класса? да, да будут конфликты... но меня интересует лишь возможность.
0
|
Неэпический
|
|
16.01.2017, 20:39 | 7 |
Шта?
Нет. В массиве данные лежат в памяти последовательно, один за другим. В списке элементы могут располагаться в памяти как угодно, но они связаны указателями. Это что-то вообще из области map. Что такое числовой объект класса?
0
|
Заблокирован
|
|
16.01.2017, 20:53 [ТС] | 8 |
Croessmah, ну arr[0]+4 это же не arr[4] а сдвиг на 4 байта (так в учебнике написано)
то есть массив от списка, грубо говоря, отличается тем что массив это "одна большая переменная" а список не имеет определённого размера до map я не дошёл и надеюсь они простые.... но что же такое список???? я читал честно... по учебнику это типа кольцевой класс где в качестве ключей есть сцылки на следующий класс но зачем в качестве ключей давать неподконтрольные данные? когда можно их контролировать ну типа class 1(....); // это объявление объекта 1 класса class
0
|
Неэпический
|
|
16.01.2017, 20:58 | 9 |
Не поверите, но список - это список.
Шта? Это просто сложение. Вы пишите бред, честно. Конечно списки бывают кольцевые, но то что Вы написали явно не то. Какие ключи? Какие неподконтрольные данные? Вы о чем? Мне даже стало интересно в каком? И укажите точно где.
0
|
Заблокирован
|
||||||
16.01.2017, 21:07 [ТС] | 10 | |||||
Croessmah, зашибись,- на вопрос получаю вопрос.... но у меня есть оправдание,- я не знаю с++ ваше оправдание видимо "непонятность моих слов".... ну типа что такое дао? ну дао это дао. для совсем тупых дао это то что не является не дао. круть спс))) написал код
если честно меня так и тянет загугуглить "форум для программистов - ceberforym"
0
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
|
16.01.2017, 21:11 | 11 |
0
|
Заблокирован
|
|
16.01.2017, 21:14 [ТС] | 12 |
Renji, очень тупой вопрос который мне ни чем не поможет и никогда не пригодится,- почему последовательный сдвиг занимает больше времени чем рандомный доступ? (ну про память мы как я понял)
0
|
Неэпический
|
|
16.01.2017, 21:20 | 13 |
А для совсем тупых.
Правильно заданный вопрос - половина ответа. Как сможете внятно объяснить, так и будем отвечать. А пока какие-то ключи, неподконтрольные данные, кольцевые классы... Добавлено через 3 минуты Потому что это сдвиг массива, а не какого-то числа. Массив (структура данных) - это не один объект, а 100500 объектов, которые лежат друг за другом. Так что чтобы вставить в начало один элемент, нужно сначала "сдвинуть" 100500 элементов дальше, а значит нужно произвести 100500 копирований/перемещений, прежде, чем заменить первый элемент.
0
|
16.01.2017, 21:22 | 14 |
Пример ну типо играеш в такой квест - едеш на машине в указанное место, там фотографируешся на фоне или береш чек в магазине, и в условленном месте лежит бумажка где написано куда ехать следующим пунктом... И кто первый приедет на финиш, тот и выйграл!
0
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
|
16.01.2017, 21:24 | 15 |
Потому что элементы массива лежат стопкой и начало этой стопки передвигать нельзя. Хотите выдернуть что-то из середины стопки - придется перекладывать вниз все что лежит над выдернутой фигней.
Если же у вас список, то элементы раскиданы по всей квартире и на каждом висит записка "нашел сапоги? Молодец. Ну а зонтик ты на кухне оставил". Хотите выдернуть зонтик - меняете записку с "зонтик на кухне" на "куртка на люстре". А снимать куртку с люстры уже не обязательно. При этом, понятное дело, если вам нужна конкретно куртка, вы замучаетесь бегать по всей квартире и собирать записки в поисках той, в которой про куртку написано.
0
|
Croessmah
|
16.01.2017, 21:26
#16
|
Не по теме: _Ivana, Renji, во вы жути нагнали. :D
0
|
Заблокирован
|
|
16.01.2017, 21:29 [ТС] | 17 |
фу варвар иди инштейна смотри "правильная постановка вопроса 90% ответа"
ну понятно же что любой массив состоит из ключа и элемента нуууу я прям в шоке как получить доступ к элементу массива без ключа???????
мб= данные которые мы не можем изменить для своего удобства
ну где последний объект содержит сцылку на первый
но это же концепция стека а не динамики?
0
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
|
16.01.2017, 21:30 | 18 |
Примерно также как взять третью слева книгу, не имея таблички "третья книга - вот эта".
0
|
Заблокирован
|
|
16.01.2017, 21:32 [ТС] | 19 |
_Ivana, согласно условию задачи выиграл я тк другие участники андефине)))))))) но где смысл ? полагаю ваш пример где список состоит из двух элементов но почему это не массив? где конечный пункт известен?
0
|
Неэпический
|
||||||
16.01.2017, 21:33 | 20 | |||||
Может всё-таки индекс, не?
А индекс, это не ключ - это тупо смещение от начала массива. А вот еще сюрприз:
Для начала бы разобраться с не кольцевыми структурами. Причем здесь стек и динамика?
0
|
16.01.2017, 21:33 | |
16.01.2017, 21:33 | |
Помогаю со студенческими работами здесь
20
Приведите пример,вывод Приведите пример класса в классе Приведите пример класса с конструкторами и деструктором Приведите пример использования оператора switch Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |