Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
Заблокирован

Приведите пример реализации списка

16.01.2017, 19:47. Показов 2519. Ответов 42
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
как я понял по своей сути список отличается от массива тем что список исспользует не фиксированный размер памяти и располагается в динамической памяти...
ну те список=массив написанный кодом.
можно пример найпройстейшего списка
пытался типа так
C++
1
2
3
4
5
6
7
8
9
10
11
class arr{
public:
static int id; // типа цифровой ключ массива,- при присвоениии всё ок а вот при доступе ошибка(((
int val;
arr(int a);}
arr::arr(int a){
this->val=a;
id++;)
 
вроде немного коряво, но изящно же. но компилятор не хочет принимать цифру как объект класса. как заставить?
ну и не прочь услышать децл теории но без факов-мануалов выражайтесь своими матами :D
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.01.2017, 19:47
Ответы с готовыми решениями:

Приведите простейший пример реализации диалога
:cry: Приведите простейший пример реализации диалога в С++ при вводе значений переменных. Какова роль оператора ввода?

Привести пример реализации любого линейного списка списка с использованием лишь структур
Буду благодарен, если кто-нибудь сможет привести пример реализации любого линейного списка списка с использованием лишь структур (то есть...

Приведите пример.
Программа с использованием функции без параметров. Можете разьяснить все как есть

42
Каждому свое
 Аватар для Bretbas
533 / 219 / 81
Регистрация: 05.08.2013
Сообщений: 1,614
16.01.2017, 20:01
abrdabr_ne_ssv,
Цитата Сообщение от abrdabr_ne_ssv Посмотреть сообщение
как я понял по своей сути список отличается от массива тем что список исспользует не фиксированный размер памяти и располагается в динамической памяти
Нет, не так вы поняли.
Массив тоже может располагаться в динамической памяти. Такие массивы и называются - динамическими.
Различия между массивом и списком просты - структуризация в памяти.

У массива(без разницы динамического или статического) все элементы в памяти располагаются на смежных ячейках.
У списка элемент имеет указатель на следующий элемент, этот следующий элемент имеет указатель на другой следующий элемент и тд.
Бывают двухсвязные и односвязные списки. Из названия понятно, что односвязные списки являются такими списками, у которых каждый элемент имеет указатель на следующий. А двухсвязный список является таким списком, у которого каждый элемент имеет указатель на следующий и предыдущий.

Так как разговор идет с упоминанием указателем, следует сразу сделать вывод, что список располагается в динамической памяти.

А так в google много теории об этом. Посмотри
0
Заблокирован
16.01.2017, 20:10  [ТС]
Bretbas, ну я тоже люблю людей на гугл посылать)))))))))
но про динамические массивы в моём учебнике пока не написано....
но тогда в чём преимущество списка перед массивом? те полагается что список юзается для чаров?(это я о двунаправленности)
ну хотя я не представляю каким образом может исспользоватся двунаправленный список...
0
Каждому свое
 Аватар для Bretbas
533 / 219 / 81
Регистрация: 05.08.2013
Сообщений: 1,614
16.01.2017, 20:19
abrdabr_ne_ssv,
Цитата Сообщение от abrdabr_ne_ssv Посмотреть сообщение
но тогда в чём преимущество списка перед массивом?
Преимущества никакого. Просто для каждый из этих контейнеров подходит для своего круга задач.
К примеру доступ к элементу массива осуществляется быстрее, чем в списке, так как чтобы добраться до нужного элемента списка нужно пройти несколько итераций через указатели элементов.
А вставка, удаление элементов списка осуществляется быстрее, чем в массиве, так как чтобы вставить/удалить элемент в массиве, нужно сдвигать все элементы, правее вставляемого/удаляемого, и только потом вставлять. В списке это делается проще - просто передаются указатели на новый элемент.
И еще много много различий Говорю, почитай в инете

Все зависит от задачи
0
Неэпический
 Аватар для Croessmah
18144 / 10728 / 2066
Регистрация: 27.09.2012
Сообщений: 27,026
Записей в блоге: 1
16.01.2017, 20:22
Разобрать устройство двусвязного списка
Удаление элемента из двусвязного списка
0
Заблокирован
16.01.2017, 20:33  [ТС]
Bretbas, всёравно не понимаю,- почему тупо не сдвигать массив по типу arr[0]+4
но суть не в этом, (лично я не представляя работы списка в должной мере, и значит не собираюсь его применять) но понимать то его я обязан)) те концепция списка в первом посте верна?
ну те создаётся тупой класс с двумя переменными где одна выступает как ключ а вторая как значение?
&&&
чисто из любопытства возможно ли создать числовой объект класса? да, да будут конфликты... но меня интересует лишь возможность.
0
Неэпический
 Аватар для Croessmah
18144 / 10728 / 2066
Регистрация: 27.09.2012
Сообщений: 27,026
Записей в блоге: 1
16.01.2017, 20:39
Цитата Сообщение от abrdabr_ne_ssv Посмотреть сообщение
почему тупо не сдвигать массив по типу arr[0]+4
Шта?
Цитата Сообщение от abrdabr_ne_ssv Посмотреть сообщение
те концепция списка в первом посте верна?
Нет.
В массиве данные лежат в памяти
последовательно, один за другим.
В списке элементы могут располагаться в
памяти как угодно, но они связаны указателями.
Цитата Сообщение от abrdabr_ne_ssv Посмотреть сообщение
ну те создаётся тупой класс с двумя переменными где одна выступает как ключ а вторая как значение?
Это что-то вообще из области map.
Цитата Сообщение от abrdabr_ne_ssv Посмотреть сообщение
чисто из любопытства возможно ли создать числовой объект класса?
Что такое числовой объект класса?
0
Заблокирован
16.01.2017, 20:53  [ТС]
Croessmah, ну arr[0]+4 это же не arr[4] а сдвиг на 4 байта (так в учебнике написано)
то есть массив от списка, грубо говоря, отличается тем что массив это "одна большая переменная" а список не имеет определённого размера
до map я не дошёл и надеюсь они простые.... но что же такое список????
я читал честно... по учебнику это типа кольцевой класс где в качестве ключей есть сцылки на следующий класс но зачем в качестве ключей давать неподконтрольные данные? когда можно их контролировать



ну типа class 1(....); // это объявление объекта 1 класса class
0
Неэпический
 Аватар для Croessmah
18144 / 10728 / 2066
Регистрация: 27.09.2012
Сообщений: 27,026
Записей в блоге: 1
16.01.2017, 20:58
Цитата Сообщение от abrdabr_ne_ssv Посмотреть сообщение
но что же такое список?
Не поверите, но список - это список.
Цитата Сообщение от abrdabr_ne_ssv Посмотреть сообщение
arr[0]+4 это же не arr[4] а сдвиг на 4 байта
Шта? Это просто сложение.
Цитата Сообщение от abrdabr_ne_ssv Посмотреть сообщение
по учебнику это типа кольцевой класс
Вы пишите бред, честно.
Конечно списки бывают кольцевые,
но то что Вы написали явно не то.
Цитата Сообщение от abrdabr_ne_ssv Посмотреть сообщение
зачем в качестве ключей давать неподконтрольные данные?
Какие ключи? Какие неподконтрольные данные? Вы о чем?
Цитата Сообщение от abrdabr_ne_ssv Посмотреть сообщение
так в учебнике написано
Мне даже стало интересно в каком?
И укажите точно где.
0
Заблокирован
16.01.2017, 21:07  [ТС]
Croessmah, зашибись,- на вопрос получаю вопрос.... но у меня есть оправдание,- я не знаю с++ ваше оправдание видимо "непонятность моих слов".... ну типа что такое дао? ну дао это дао. для совсем тупых дао это то что не является не дао. круть спс))) написал код
C++
1
list a={1,2,3}
не работает чо делать? такие вопросы нужно задавать?

если честно меня так и тянет загугуглить "форум для программистов - ceberforym"
0
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
16.01.2017, 21:11
Цитата Сообщение от abrdabr_ne_ssv Посмотреть сообщение
Bretbas, всёравно не понимаю,- почему тупо не сдвигать массив по типу arr[0]+4
Потому что массив на миллион элементов сдвигается медленно и печально.
0
Заблокирован
16.01.2017, 21:14  [ТС]
Renji, очень тупой вопрос который мне ни чем не поможет и никогда не пригодится,- почему последовательный сдвиг занимает больше времени чем рандомный доступ? (ну про память мы как я понял)
0
Неэпический
 Аватар для Croessmah
18144 / 10728 / 2066
Регистрация: 27.09.2012
Сообщений: 27,026
Записей в блоге: 1
16.01.2017, 21:20
Цитата Сообщение от abrdabr_ne_ssv Посмотреть сообщение
для совсем тупых
А для совсем тупых.
Правильно заданный вопрос - половина ответа.
Как сможете внятно объяснить, так и будем отвечать.
А пока какие-то ключи, неподконтрольные данные, кольцевые классы...

Добавлено через 3 минуты
Цитата Сообщение от abrdabr_ne_ssv Посмотреть сообщение
почему последовательный сдвиг занимает больше времени чем рандомный доступ?
Потому что это сдвиг массива, а не какого-то числа.
Массив (структура данных) - это не один объект,
а 100500 объектов, которые лежат друг за другом.
Так что чтобы вставить в начало один элемент,
нужно сначала "сдвинуть" 100500 элементов дальше,
а значит нужно произвести 100500 копирований/перемещений,
прежде, чем заменить первый элемент.
0
4949 / 2289 / 287
Регистрация: 01.03.2013
Сообщений: 5,984
Записей в блоге: 32
16.01.2017, 21:22
Цитата Сообщение от abrdabr_ne_ssv Посмотреть сообщение
Приведите пример реализации списка
Пример ну типо играеш в такой квест - едеш на машине в указанное место, там фотографируешся на фоне или береш чек в магазине, и в условленном месте лежит бумажка где написано куда ехать следующим пунктом... И кто первый приедет на финиш, тот и выйграл!
0
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
16.01.2017, 21:24
Цитата Сообщение от abrdabr_ne_ssv Посмотреть сообщение
Renji, очень тупой вопрос который мне ни чем не поможет и никогда не пригодится,- почему последовательный сдвиг занимает больше времени чем рандомный доступ?
Потому что элементы массива лежат стопкой и начало этой стопки передвигать нельзя. Хотите выдернуть что-то из середины стопки - придется перекладывать вниз все что лежит над выдернутой фигней.

Если же у вас список, то элементы раскиданы по всей квартире и на каждом висит записка "нашел сапоги? Молодец. Ну а зонтик ты на кухне оставил". Хотите выдернуть зонтик - меняете записку с "зонтик на кухне" на "куртка на люстре". А снимать куртку с люстры уже не обязательно. При этом, понятное дело, если вам нужна конкретно куртка, вы замучаетесь бегать по всей квартире и собирать записки в поисках той, в которой про куртку написано.
0
16.01.2017, 21:26

Не по теме:

_Ivana, Renji, во вы жути нагнали. :D

0
Заблокирован
16.01.2017, 21:29  [ТС]
Цитата Сообщение от Croessmah Посмотреть сообщение
Правильно заданный вопрос - половина ответа.
фу варвар иди инштейна смотри "правильная постановка вопроса 90% ответа"
Цитата Сообщение от Croessmah Посмотреть сообщение
А пока какие-то ключи
ну понятно же что любой массив состоит из ключа и элемента нуууу я прям в шоке как получить доступ к элементу массива без ключа???????
Цитата Сообщение от Croessmah Посмотреть сообщение
неподконтрольные данные
мб= данные которые мы не можем изменить для своего удобства
Цитата Сообщение от Croessmah Посмотреть сообщение
кольцевые классы
ну где последний объект содержит сцылку на первый
Цитата Сообщение от Croessmah Посмотреть сообщение
Так что чтобы вставить в начало один элемент,
но это же концепция стека а не динамики?
0
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
16.01.2017, 21:30
Цитата Сообщение от abrdabr_ne_ssv Посмотреть сообщение
ну понятно же что любой массив состоит из ключа и элемента нуууу я прям в шоке как получить доступ к элементу массива без ключа???????
Примерно также как взять третью слева книгу, не имея таблички "третья книга - вот эта".
0
Заблокирован
16.01.2017, 21:32  [ТС]
_Ivana, согласно условию задачи выиграл я тк другие участники андефине)))))))) но где смысл ? полагаю ваш пример где список состоит из двух элементов но почему это не массив? где конечный пункт известен?
0
Неэпический
 Аватар для Croessmah
18144 / 10728 / 2066
Регистрация: 27.09.2012
Сообщений: 27,026
Записей в блоге: 1
16.01.2017, 21:33
Цитата Сообщение от abrdabr_ne_ssv Посмотреть сообщение
состоит из ключа и элемента
Может всё-таки индекс, не?
Цитата Сообщение от abrdabr_ne_ssv Посмотреть сообщение
к элементу массива без ключа?
А индекс, это не ключ - это тупо смещение от начала массива.
А вот еще сюрприз:
C++
1
2
3
4
5
6
7
#include <iostream>
 
int main()
{
    int arr[2] = {6, 9};
    std::cout << 1[arr] << std::endl;//где здесь ключ? )))
}
http://rextester.com/FWMO30049

Цитата Сообщение от abrdabr_ne_ssv Посмотреть сообщение
ну где последний объект содержит сцылку на первый
Для начала бы разобраться с не кольцевыми структурами.
Цитата Сообщение от abrdabr_ne_ssv Посмотреть сообщение
но это же концепция стека а не динамики?
Причем здесь стек и динамика?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.01.2017, 21:33
Помогаю со студенческими работами здесь

Приведите пример инвариантности
Если можно, то объясните на конкретном примере(желательно лёгком в понимании) что такое инвариантность. На словах понятно, что это...

Приведите пример,вывод
Привет,можете пожалуйста привести пример вывода всех файлов txt из папки,и лежащих в этой папке подпапок. Добавлено через 58 минут ...

Приведите пример класса в классе
Приведите пожалуйста пример класса в классе, так что бы в классе a были свойства и методы класса b.

Приведите пример класса с конструкторами и деструктором
Здравствуйте ! Приведите пример Конструкторы и Деструкторы в С++ ( Напишите по понятнее код пожалуйста ) Я пищу курсовую и мне нужно...

Приведите пример использования оператора switch
напишите пожалуйста простенькую программу с оператором &quot;switch&quot;


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru