Форум программистов, компьютерный форум, киберфорум
Наши страницы

Реализация связного списка - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ com port http://www.cyberforum.ru/cpp-beginners/thread898662.html
Помогите новичку, уже 3 недели мучаюсь, и все статьи перечитал!!Не понимаю в чем ошибка! Написал программку в синхронном режиме передача данных(не важно каких), должен прислать ответ и записать в...
C++ Промышленное программирование на С++ Привет! Ещё вопросик. Есть такое понятие, как "промышленное программирование на С++". Особенно вакансии некоторых солидных фирм пестрят такими фразиологизмами. Не подскажите, что понимать под... http://www.cyberforum.ru/cpp-beginners/thread898659.html
C++ Исправить и дополнить распределитель памяти
Добрый день. Изучаю книгу Страуструпа (ту, что для новичков). Там есть задание создать упрощённый вариант класса allocator с исп. функций malloc и free. Вот мой код: //Allocator.h...
C++ извлечь данные из файла и вывести результаты тоже в файл
Здравствуйте. Есть вот такое задание -Даны пять действительных чисел. Выберите из них те, которые принадлежат интервалу (5; 16), и возведите их в квадрат. Для данного задания написал код программы...
C++ Выручайте!Алгоритмы обработки символьной информации http://www.cyberforum.ru/cpp-beginners/thread898613.html
Задачу необходимо предствить в виде формы(кнопка и 2 поля). В древнеяпонском календаре был принят 60-летний цикл из пяти 12-летних циклов,обозначенных цветами:зеленый,красный,желтый,белый, и черный.В...
C++ Какой компилятор поддерживает С++ 11? Привет! Какой-нибудь компилятор реализует уже стандарт С++ 11? подробнее

Показать сообщение отдельно
anmartex
...
1708 / 1201 / 496
Регистрация: 12.02.2013
Сообщений: 1,978
13.06.2013, 09:09
Цитата Сообщение от masikus Посмотреть сообщение
Можно еще одну просьбу, пояснить как работает функция добавления
я запутался что какой указатель значит
Да их там всего-то 3: сам list, node и cur. Ну да ладно:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
//-----------------------------------------------------------------------------
// Функций добавляет в список работника.
// Она добавляет элемент таким образом, чтобы не нарушить
// возрастающую возрастную последовательность 
TNode* Push(TNode*& list, const TEmployee& employee)
{
   // Новый узел, который собственно и будет
   // добавляться в список
   TNode* node = new TNode;
   node->employee = employee;
 
   // В случае если список абсолютно пуст или самый первый в списке
   // работник уже старше нового, то добавляем новый узел в вершину
   // нашего списка
   if ((list == NULL) || (employee.year < list->employee.year))
   {
      node->next = list;
      list = node;
   }
   else
   {
      // Курсор, вспомогательный указатель на узел
      TNode* cur = list;
 
      // Пробегаемся по списку и ищем работника который старше добавляемого,
      // ну или пока весь список не закончился
      while (cur->next && (cur->next->employee.year < employee.year))
      {
         cur = cur->next;
      }
 
      // А теперь просто вставляем в найденное для него место
      node->next = cur->next;
      cur->next = node;
   }
 
   return list;
}
//-----------------------------------------------------------------------------
Кстати, посмотрите на строку 27, я там исправил ошибку из предыдущего поста. Заменил cur->employee.year на cur->next->employee.year
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru