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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
ivan92
0 / 0 / 1
Регистрация: 30.01.2013
Сообщений: 188
#1

Не могу понять 2 строки кода функции из методички - C++

07.07.2013, 22:11. Просмотров 394. Ответов 3
Метки нет (Все метки)

Это код добавления элемента в линейный двунаправленный список. Не пойму 12 и 13 строки. Указатель pCurrent->next(указатель на след. элемент списка) всегда будет пустовать, т.к. в конце функции pCurrent=pAdd, а а в строке 13 указателю pAdd->next присваивается pCurrent->next, который так и не заполнился каким-либо адресом. Извините за много букв, надеюсь, понятно объяснил свое непонимание.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
void add_line_double(dataType data, element *pCurrent)
{
  element *pAdd=new element;
  pAdd->info=data;
  if(!pHead)
  {
    pAdd->next=pAdd->previous=NULL;
    pHead=pAdd;
  }
  else
  {
    if(pCurrent->next) pCurrent->next->previous=pAdd;
    pAdd->next=pCurrent->next;
    pCurrent->next=pAdd;
    pAdd->previous=pCurrent;
  }
  pCurrent=pAdd;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.07.2013, 22:11     Не могу понять 2 строки кода функции из методички
Посмотрите здесь:

C++ Строки в С++, не могу понять что неправильно в программе
строки в С++.. не могу их понять.. C++
C++ Строки (массив char), указатели. Не могу понять логику! Help!
C++ не могу понять описание, требуеться пояснение кода
функции,не могу понять ошибку C++
Стек на основе массива структур - эт как понять читаю литературу и не могу понять! C++
C++ Не могу понять, почему ввод строк начинается со 2-ой строки
C++ Вызов перегруженной функции не могу понять в чем дело?
Вывод строки. Не могу понять, в чем дело C++
C++ Не могу понять для чего третья переменная в параметрах функции
C++ Не могу понять смысл данного задания, и написание его кода
C++ Не могу понять условие в функции

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zer0mail
2307 / 1933 / 192
Регистрация: 03.07.2012
Сообщений: 6,922
Записей в блоге: 1
07.07.2013, 22:37     Не могу понять 2 строки кода функции из методички #2
Нарисуй хотя бы три элемента двусвязного списка и "вклинься" в середину (после pCurrent).
А pCurrent=pAdd; вообще пустышка, т.к. pCurrent - значение указателя из стека параметров, поэтому при выходе из процедуры он пропадет.
ivan92
0 / 0 / 1
Регистрация: 30.01.2013
Сообщений: 188
07.07.2013, 22:48  [ТС]     Не могу понять 2 строки кода функции из методички #3
Цитата Сообщение от zer0mail Посмотреть сообщение
Нарисуй хотя бы три элемента двусвязного списка и "вклинься" в середину (после pCurrent).
А pCurrent=pAdd; вообще пустышка, т.к. pCurrent - значение указателя из стека параметров, поэтому при выходе из процедуры он пропадет.
Рисовал уже, аж 4 элемента) А по поводу пустышки не знаю, что сказать, т.к. в методичке pCurrent - это и глобальная переменная тоже, так что тут по идее должно быть вот так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
void add_line_double(dataType data)
{
  element *pAdd=new element;
  pAdd->info=data;
  if(!pHead)
  {
    pAdd->next=pAdd->previous=NULL;
    pHead=pAdd;
  }
  else
  {
    if(pCurrent->next) pCurrent->next->previous=pAdd;
    pAdd->next=pCurrent->next;
    pCurrent->next=pAdd;
    pAdd->previous=pCurrent;
  }
  pCurrent=pAdd;
}
zer0mail
2307 / 1933 / 192
Регистрация: 03.07.2012
Сообщений: 6,922
Записей в блоге: 1
07.07.2013, 22:56     Не могу понять 2 строки кода функции из методички #4
Это правильный вариант, хотя такое использование глобальных переменных не есть гуд. Лучше бы функции передавали, после кого вставить, а она бы возвращала указатель на новый элемент.
Yandex
Объявления
07.07.2013, 22:56     Не могу понять 2 строки кода функции из методички
Ответ Создать тему
Опции темы

Текущее время: 16:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru