Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.06.2018, 14:37   #1
Yudin
Пользователь
 
Регистрация: 11.01.2018
Сообщений: 49
Сообщение В чем отличие односвязного списка от кольцевого односвязного списка?

Здравствуйте, читаю про односвязные списки. Написано, что недостатком односвязного списка является то, что для доступа к
желаемому элементу необходимо, просматривать список с
самого начала. Это замедляет операцию доступа к элементам в
односвязном списке. Это понятно.
Для ускорения операции доступа, организуется кольцевой односвязный
список, в котором в поле указателя последнего элемента находится
указатель на первый элемент, т. е. элементы списка связаны в кольцо.
Вот тут я не очень понимаю разницу. Если мы в обычном односвязном списке находимся в последнем элементе, а нужен первый, то получается список просто пойдет заново? А если та же ситуация, но в кольцевом односвязном списке, то последний элемент будет указывать на первый. Так в чем разница, что список пойдет заново, что последний указывает на первый, все равно действие выполняется.
Извините за глупый вопрос
Yudin вне форума Ответить с цитированием
Старый 08.06.2018, 16:20   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Yudin Посмотреть сообщение
Для ускорения операции доступа, организуется кольцевой односвязный
список
Это Вы какую-то неправильную литературу читаете.

http://src-code.net/kolcevye-svyazannye-spiski/

википедия - Связный список

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

С точки зрения доступа никакой разницы нет.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 08.06.2018, 16:47   #3
Yudin
Пользователь
 
Регистрация: 11.01.2018
Сообщений: 49
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
Это Вы какую-то неправильную литературу читаете.

http://src-code.net/kolcevye-svyazannye-spiski/

википедия - Связный список

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

С точки зрения доступа никакой разницы нет.
так если с точки зрения доступа нет разницы, зачем вообще нужен кольцевой список?
Yudin вне форума Ответить с цитированием
Старый 08.06.2018, 17:07   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Yudin Посмотреть сообщение
так если с точки зрения доступа нет разницы, зачем вообще нужен кольцевой список?
для удобства.

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

Впрочем, это просто один из множества способов хранения структур данных.
Если Вам он не нужен и/или неудобен, это не означает, что он никому не нужен.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
сортировка односвязного списка Levenyatko Общие вопросы C/C++ 0 05.07.2012 22:12
Сортировка односвязного списка (C++) biograf Помощь студентам 0 14.12.2010 21:21
Сортировка односвязного списка amerhant Общие вопросы C/C++ 1 13.05.2010 20:25
Сортировка односвязного списка btf Общие вопросы C/C++ 0 15.02.2010 14:40
Cортировка односвязного списка alesfoss Общие вопросы C/C++ 3 30.03.2009 19:46