![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 11.01.2018
Сообщений: 49
|
![]()
Здравствуйте, читаю про односвязные списки. Написано, что недостатком односвязного списка является то, что для доступа к
желаемому элементу необходимо, просматривать список с самого начала. Это замедляет операцию доступа к элементам в односвязном списке. Это понятно. Для ускорения операции доступа, организуется кольцевой односвязный список, в котором в поле указателя последнего элемента находится указатель на первый элемент, т. е. элементы списка связаны в кольцо. Вот тут я не очень понимаю разницу. Если мы в обычном односвязном списке находимся в последнем элементе, а нужен первый, то получается список просто пойдет заново? А если та же ситуация, но в кольцевом односвязном списке, то последний элемент будет указывать на первый. Так в чем разница, что список пойдет заново, что последний указывает на первый, все равно действие выполняется. Извините за глупый вопрос |
![]() |
![]() |
![]() |
#2 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]() Цитата:
http://src-code.net/kolcevye-svyazannye-spiski/ википедия - Связный список Кольцевой от линейного отличается только тем, что в линейном в последнем элементе ссылка указывает на NULL а в кольцевом - на первый элемент списка. С точки зрения доступа никакой разницы нет. |
|
![]() |
![]() |
![]() |
#3 | |
Пользователь
Регистрация: 11.01.2018
Сообщений: 49
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#4 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]() Цитата:
Например, можно не хранить ссылку на первый элемент списка (для линейного односвязного ссылка на голову обязательна) - достаточно ссылки на текущий элемент списка. Или процедура вставки в список / или удаления элемента из списка становится универсальной, вне зависимости от того, какой элемент удаляется - первый, второй или последний. В линейном нужно писать дополнительные проверки. Впрочем, это просто один из множества способов хранения структур данных. Если Вам он не нужен и/или неудобен, это не означает, что он никому не нужен. |
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
сортировка односвязного списка | 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 |