0 / 0 / 0
Регистрация: 03.12.2017
Сообщений: 90
1

Создать односвязный список целых чисел. Удалить из него все отрицательные элементы

05.10.2018, 20:33. Показов 3427. Ответов 5
Метки нет (Все метки)

Доброго времени суток!
Помогите пожалуйста с задачей.
Заранее большое спасибо!!


Создать односвязный список целых чисел. Удалить из него все отрицательные элементы.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.10.2018, 20:33
Ответы с готовыми решениями:

Создать список целых чисел. Создать новый список, записав в него отрицательные элементы
Создать список целых чисел. Создать новый список, записав в него отрицательные элементы.(задачу...

Создать односвязный список из последовательности чисел, удалить из него все простые числа
Прошу помощи, не могу понять в чем ошибка, надо создать односвязный список из последовательности...

Кольцевой односвязный список, удалить из него все отрицательные числа
Здравствуйте, необходимо решить проблему в задаче: "Сформулируйте кольцевой список с вещественным...

Односвязный список, удалить все отрицательные элементы
Односвязный список Реализация динамических структур Написать программу, которая удаляет из...

5
447 / 333 / 172
Регистрация: 01.07.2015
Сообщений: 1,162
06.10.2018, 15:50 2
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
#include <iostream>
 
using namespace std;
 
struct List {
  int data;
  List* next;
};
 
void push(List*& head, List*& tail, int what) {
  List* new_node = new List;
 
  new_node->data = what;
  new_node->next = nullptr;
 
  if (!head) {
    head = new_node;
    tail = new_node;
  } else {
    tail->next = new_node;
    tail = new_node;
  }
}
 
void del(List*& head, List*& tail, List*& what) {
  if (head == what) {
    head = head->next;
 
  } else if (tail == what) {
    List* prev = head;
 
    while (prev->next != tail)
      prev = prev->next;
 
    tail = prev;
    tail->next = nullptr;
  } else {
    List* prev = head;
 
    while (prev->next != what)
      prev = prev->next;
 
    prev->next = what->next;
  }
 
  delete what;
}
 
void show(List* head, List* tail) {
  while (head) {
    cout << head->data << ' ';
 
    head = head->next;
  }
}
 
int32_t main() {
  List* head = nullptr;
  List* tail = nullptr;
 
  int n;
  cin >> n;
 
  for (int i = 0; i < n; ++i) {
    int t;
    cin >> t;
 
    push(head, tail, t);
  }
 
  List* tmp = head;
 
  while (tmp) {
    if (tmp->data < 0) {
      del(head, tail, tmp);
 
      tmp = head;
 
      continue;
    }
 
    tmp = tmp->next;
  }
 
  show(head, tail);
}
0
0 / 0 / 0
Регистрация: 03.12.2017
Сообщений: 90
06.10.2018, 16:17  [ТС] 3
Это
Цитата Сообщение от ReDoX Посмотреть сообщение
nullptr
= NULL ?
0
139 / 67 / 46
Регистрация: 15.10.2015
Сообщений: 308
06.10.2018, 16:18 4
ABBAjur, Не совсем так, но в C++ используйте nullptr. NULL как минимум deprecated
0
0 / 0 / 0
Регистрация: 03.12.2017
Сообщений: 90
06.10.2018, 16:29  [ТС] 5
Большое спасибо Вам, очень помогли

Добавлено через 5 минут
Цитата Сообщение от Reavolt Посмотреть сообщение
Не совсем так, но в C++ используйте nullptr. NULL как минимум deprecated
я когда тестировал этот код в CodeBlocks' е , nullptr обозначался как 'nullptr' was not declared in this scope а когда заменил на NULL всё заработало
0
447 / 333 / 172
Регистрация: 01.07.2015
Сообщений: 1,162
06.10.2018, 16:31 6
ABBAjur, nullptr - c++11. Возможно, по умолчанию он не включен в CB
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.10.2018, 16:31
Помогаю со студенческими работами здесь

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

Создать новый односвязный список. Поместить в него все элементы из первых двух, которые больше заданного символа
Кто разбирается гляньте пожалуйста вроде в третий список добавляется элемент но выводится список...

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

Дан файл целых чисел. Удалить из него все элементы с четными номерами.
Помогите. Дан файл целых чисел. Удалить из него все элементы с четными номерами. Помогите сделать...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru