Форум программистов, компьютерный форум CyberForum.ru

Связанные списки - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Найти индекс первого элемента, превосходяшего среднее арифметическое всех элементов матрицы http://www.cyberforum.ru/cpp-beginners/thread606266.html
Взаданой матрице Δ(N,N) найти индекс первого элемента превосходяшего среднее арифметическое всех элементов матрици. Элементы матриц просматривать слева на право и сверху вниз .
C++ Написать программу, которая считывает текст из файла и записывает в другой файл Написать программу, которая считывает текст из файла и записывает в другой файл все слова, встречающиеся в тексте несколько раз. http://www.cyberforum.ru/cpp-beginners/thread606229.html
C++ Структура: вывести на экран информацию о результатах прыжков в длину, отсортированную в порядке возрастания мест
В одном файле хранятся сведения об участниках соревнований: номер участника, ФИО, страна, во 2 файле сведения об итогах соревнований: номер участника, вид соревнований, дата, место. вывести на экран информацию о результатах прыжков в длину (номер участника, ФИО, страна, место), отсортированную в порядке возрастания мест.
C++ Программа, считывающая текст из файла
Написать программу, которая считывает текст из файла и записывает в другой файл встречающиеся в тексте числа, из отрезка и находит их среднее арифметическое.
C++ Написать программу, которая считывает текст из файла http://www.cyberforum.ru/cpp-beginners/thread606206.html
Задание. Написать программу, которая считывает текст из файла и записывает в другой файл количество букв в тексте. Помогите сделать пожайлуйста. В дискуссию войти не смогу, увы.
C++ Странная запись: 1L Здравствуйте! Только что наткнулся на запись var = 1L << 1. Все понятно кроме одного: зачем добавлять L после 1? подробнее

Показать сообщение отдельно
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
26.09.2012, 02:42     Связанные списки
Цитата Сообщение от Sher_vud Посмотреть сообщение
alsav22 спасибо, я понял суть метода, но вот механизм пока не удается осмыслить.
запутался в этих строках:
else rear -> next = newlink; // если список не пустой, то в конец
rear = newlink; // rear конец списка
Два указателя first и rear. Один указывает на начало списка, другой на конец. Сначала оба на NULL. Создаётся новый элемент, на него указывает newlink. Если список пустой, то значение newlink присваивается указателю на начало списка - first. Это произойдёт одни раз. В следующие разы заход будет уже только в else. То есть first в дальнейшем меняться не будет, и он будет указывать на начало списка. В первый раз else пропускается, после него указателю rear присваивается значение newlink, то есть, пока элемент в списке один, начало и конец списка совпадают. При добавлении следующего элемента заход только в else. После этого элемент, который до этого был в конце списка, будет содержать указатель на добавляемый элемент (rear -> next = newlink), а rear присваивается адресс нового элемента (rear = newlink), т.е. новый элемент становится концом списка, адресс которого находится в rear.

Добавлено через 6 минут
Цитата Сообщение от BumerangSP Посмотреть сообщение
Это односвязный линейный список, не очередь.
Я и имел ввиду список. Просто в разных источниках это всё по разному называется, где очередь, где список. Односторонняя очередь, двусторонняя. Односвязанный список, двусвязанный список. Сути это не меняет. Я не спорю, просто поясняю. Тут можно увязнуть в определениях.
 
Текущее время: 00:53. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru