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

Вставка элемента в n позицию связного списка - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Structure (Область видимости) http://www.cyberforum.ru/cpp-beginners/thread900210.html
struct.cpp:38:13: ошибка: нет декларации «TechnicalType» в этой области видимости помогите поправить :c 38 строка // //Failname: struct.c //Abstraction: Lab №2 // //Description: Structure //Creation: Date 2013/11/6 //Autor: Golyakov Alexandr Mikhailovich
C++ Программа "Аэрофлот", тема "Структура" Народ, привет! У меня сейчас практика и до ее окончания остались считанные дни, осталось написать последнюю программку, помогите, пожалуйста: Ввести сведения о кассе аэрофлота по следующей структуре: номер кассы, ФИО кассира, количество проданных билетов, суммарная выручка. Вывести: а)все сведения, где количество проданных билетов больше 200; б)все сведения для указанной ФИО. ... http://www.cyberforum.ru/cpp-beginners/thread900203.html
C++ виртуальные функции
Изменить программу предыдущей лабораторной работы, функцию определяющую бьет ли первая карта вторую, определитель в базовом классе как виртуальную, переопределив в производном классе с учетом козыря. Вот предыдущая лабораторная которая называлась "Наследование" #include <iostream> #include <stdexcept> class Card { public: Card() : suit(0), rank(0) {}
C++ о функциях (элементарно, но я же нуб)
Пишу в компилятор следующее: #include <cstdlib> #include <iostream> int Sum (int a, int b) { std::cout << "Type a"; std::cin >> a; std::cout << "Type b"; std::cin>> b;
C++ Структуры. Определить название месяца с максимальным объемом выпуска http://www.cyberforum.ru/cpp-beginners/thread900165.html
Известен объем выпуска товара в январе, а также процент увеличения (уменьшения) объема выпуска в каждом месяце относительно предыдущего в течение всего года. Определить название месяца с максимальным объемом выпуска.
C++ Вывести отрицательные элементы массива на экран в обратном порядке 9. Дан одномерный массив, состоящий из N вещественных элементов. 9.1. Ввести массив с клавиатуры. 9.2. Найти максимальный элемент. 9.3. Вывести отрицательные элементы на экран в обратном порядке подробнее

Показать сообщение отдельно
masikus
2 / 2 / 0
Регистрация: 03.03.2013
Сообщений: 37

Вставка элемента в n позицию связного списка - C++

13.06.2013, 11:10. Просмотров 452. Ответов 0
Метки (Все метки)

Форумчане можете помочь написать функцию
Вставки элемента связного списка в указанную пользователем позицию. Предусмотреть ситуацию, когда указанная пользователем позиция превышает максимальное количество существующих на данный момент элементов списка. В этом случае должно быть создано необходимое количество пустых элементов списка для дополнения до необходимого размера.

Вот сам список
C++
1
2
3
4
5
6
7
8
9
10
11
12
struct TEmployee
{
   std::string surname;
   std::string name;
   unsigned year;
};
 
struct TNode
{
   TEmployee employee;
   TNode* next;
};
Весь код с другими функциями
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
#include <iostream>
#include <string>
 
struct TEmployee
{
   std::string surname;
   std::string name;
   unsigned year;
};
 
struct TNode
{
   TEmployee employee;
   TNode* next;
};
 
//-----------------------------------------------------------------------------
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->employee.year < employee.year))
      {
         cur = cur->next;
      }
 
      node->next = cur->next;
      cur->next = node;
   }
 
   return list;
}
//-----------------------------------------------------------------------------
void Clear(TNode*& list)
{
   TNode* node;
   while (list)
   {
      node = list;
      list = list->next;
      delete node;
   }
}
//-----------------------------------------------------------------------------
std::istream& operator >> (std::istream& is, TEmployee& employee)
{
    setlocale(0,"");
   std::cout << "Фамилия: ";
   is >> employee.surname;
 
   std::cout << "Имя:     ";
   is >> employee.name;
 
   std::cout << "Возраст: ";
   is >> employee.year;
 
   std::cout << std::endl;
 
   return is;
}
//-----------------------------------------------------------------------------
std::ostream& operator << (std::ostream& os, const TEmployee& employee)
{
    setlocale(0,"");
   return os << "Фамилия: " << employee.surname << std::endl
             << "Имя:     " << employee.name << std::endl
             << "Возраст: " << employee.year << std::endl;
}
//-----------------------------------------------------------------------------
std::ostream& operator << (std::ostream& os, const TNode* list)
{
   while (list)
   {
      os << list->employee << std::endl;
      list = list->next;
   }
 
   return os;
}
//-----------------------------------------------------------------------------
 
int main()
{
    setlocale(0,"");
   unsigned n;
   std::cout << "Введите количество сотрудников: ";
   std::cin >> n;
 
   TEmployee employee;
   TNode* list = NULL;
 
for(int i=0;i<n;i++)
    {
      std::cin >> employee;
      Push(list, employee);
   }
 
   std::cout << "Список:" << std::endl << list;
 
   Clear(list);
   system("pause");
   return 0;
}


Добавлено через 3 часа 40 минут
тему можно удалить
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru