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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.08.2015, 06:30   #11
Krasiosoft
Форумчанин
 
Аватар для Krasiosoft
 
Регистрация: 01.06.2015
Сообщений: 497
По умолчанию

Цитата:
Сообщение от Алексей_2012 Посмотреть сообщение
то исходные списки продолжают существовать как отдельные объекты?
Да, аналогично как и со структурами.


Цитата:
Сообщение от Алексей_2012 Посмотреть сообщение
Разве при выводе списка не нужно писать так:
Код:
while (!head)
?
Я так понимаю, это незамкнутый список, поэтому проход делают пока следующий элемент не будет равен нулю.
Если помог, буду очень благодарен за Ваш отзыв (весы в левой нижней части сообщения).
Krasiosoft вне форума Ответить с цитированием
Старый 18.08.2015, 08:20   #12
GreenWizard
мальчик-помогай =)
Форумчанин
 
Регистрация: 16.09.2010
Сообщений: 522
По умолчанию

Код:
..........
void addelement()
{
     cout << "Begin addelement()" << endl; // !
     spisok* current = new spisok; // Здесь создали новый объект.
     cout << "New = " << current << endl; // !

     cin >> current->a;
     cin >> current->b; // Забили поля объекта полезными данными.
     
     current->next = 0; // Забили в указатель текущего объекта нуль.
     // Указатель текущего объекта ни на что не указывает.
     
     if(head == 0) // Если в списке нет адреса какого либо объекта...
     {
             head = current; // ... верх списка указывает на текущий объект.
     }
     else // Если head на что то указывает
     {
         // Создаем указатель-ПСЕВДОНИМ, который указывает на начало списка.
         spisok* temp = head;

         cout << "temp = head = " << temp << endl; // !
         cout << "temp->next = " << temp->next << endl; // !
         while(temp->next != 0){ // пока есть след. элемент
              temp = temp->next;
              cout << "temp = " << temp << endl; // !
              cout << "temp->next = " << temp->next << endl; // !
         }
         // temp указывает на элемент с next = 0 т. е. нет след. элемента
         // Но чему изначально равен temp->next? равен head->next :-)
         temp->next=current; 
         // Указатель next указателя temp указывает на текущий объект.
         // Каким образом осуществлен проход по списку?
     }

     cout << "End addelement()" << endl; // !
}
......
Вариант отладки без отладки... должно вывести основные моменты работы функции... только могут быть ошибки компиляции, сообщишь о них (писал прям в браузере, мог опечатку допустить)

P. S. в гугле вводим "связный список c++" и выдаёт море инфы, даже видео-уроки есть... вряд ли нигде нет разбора добавления в конец
P. P. S. сделайте уже перенос комментариев :-) мой перфекционизм просто звереет от вида поехавшей вёрстки из-за слишком длинных строк в блоке CODE

Последний раз редактировалось GreenWizard; 18.08.2015 в 08:37.
GreenWizard вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Стековый калькулятор, чистый Си, реализовать его со связным списком anna27 Помощь студентам 4 09.05.2013 23:31
проблемы с Char-списком Caged Помощь студентам 0 25.12.2011 18:02
Операции над многочленами, заданными списком свомх коэффициентовОперации над многочленами, заданными списком свомх коэффициентов lelicki_bolicki Общие вопросы по Java, Java SE, Kotlin 1 06.12.2011 22:07
проблемы со связным списком с++ (Borland) adwaer Помощь студентам 0 15.04.2009 16:23
проблемы со связным списком с++ (Borland) adwaer Помощь студентам 0 15.04.2009 16:22