|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
07.12.2010, 20:00 | #1 |
Пользователь
Регистрация: 07.12.2010
Сообщений: 13
|
Не понимаю, как работает односвязный список
Читаю в книге пример:
Код:
Заполняются имя и фамилия, предыдущая структура становиться текущей, чтобы связный список работал, но тут я не понимаю - когда я вбиваю второй раз данные, prev = current перекрывает предыдущие данные prev, однако список работает, не понимаю как такое может быть... Последний раз редактировалось ACE Valery; 07.12.2010 в 21:29. |
07.12.2010, 21:30 | #2 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,760
|
Прочтите теорию по спискам! Дли списка важна голова.
|
07.12.2010, 22:01 | #3 |
Сама себе режиссер
Старожил
Регистрация: 27.04.2007
Сообщений: 3,365
|
Во-первых, оформляем код тегом [code], а не [php].
Во-вторых называем правильно темы. В-третьих... prev = current перекрывает предыдущие данные prev, НО это делается в самом конце, когда prev уже свое отслужила. Вот не умею я объяснять списки, ну да попробуем... Первая итерация цикла: если список пустой, то ставим вновь созданный элемент в начало списка: head = current; Дальше заполняем имя, фамилию. Потом мы сохраняем адрес вновь добавленного элемента. Вторая итерация: так как список у нас уже не пустой, переходим к prev->next =current; Тут мы берем адрес предыдущего элемента(то бишь того, который был у нас на первой итерации) и привязываем к нему адрес текущего элемента(то бишь вновь созданного на второй итерации), заполняем текущий элемент данными. prev нам уже не нужен, заносим в него адрес текущего элемента для следующей итерации. И так далее. Приведу грубую аналогию: Код:
Надеюсь, я вас не запутала еще больше?
Если я вас напрягаю или раздражаю, вы всегда можете забиться в угол и поплакать
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Односвязный список | pwdan | Общие вопросы .NET | 3 | 15.10.2010 14:23 |
Односвязный список | masha17 | Общие вопросы C/C++ | 1 | 09.12.2009 12:20 |
C++. Односвязный список. Уничтожить список | Olya90 | Помощь студентам | 2 | 10.06.2009 18:52 |
Односвязный список. С++ | Ozza | Помощь студентам | 1 | 06.02.2009 02:09 |