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

Стеки (функция, которая удаляет из стека первый отрицательный элемент, если такой есть) - C++

Восстановить пароль Регистрация
 
KyuH
Сообщений: n/a
08.04.2013, 23:34     Стеки (функция, которая удаляет из стека первый отрицательный элемент, если такой есть) #1
Здравствуйте! Помогите пожалуйста разработать функцию, которая удаляет из стека первый отрицательный элемент, если такой есть.
Если не сложно, то ещё учитывая что: "Для организации стека нужно использовать структуру с функциями. Реализовать все операции со стеком через функции. В проекте объявления, определение функций и реализацию алгоритма выполнять в отдельных модулях."
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.04.2013, 23:34     Стеки (функция, которая удаляет из стека первый отрицательный элемент, если такой есть)
Посмотрите здесь:

Найти в каждой строке, если там есть отрицательный элемент, среднее арифметическое всех элементов, исключая нулевые и записать эти значения в массив B C++
C++ Описать процедуру и функцию которая, удаляет из списка L за каждым вхождением элемента Е один элем если такой есть, и он отличен от Е
Поменять местами минимальный элемент и первый отрицательный элемент массива целых чисел C++
Исключить из массива А(n) первый отрицательный элемент C++
Преобразовать массив, если в нем есть хоть один отрицательный элемент C++
C++ Первый отрицательный и последний положительный элемент читаемый из файла
C++ Удалить из массива А (20) первый отрицательный элемент
Не выводится первый элемент стека C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
anmartex
...
 Аватар для anmartex
1700 / 1193 / 494
Регистрация: 12.02.2013
Сообщений: 1,978
09.04.2013, 11:05     Стеки (функция, которая удаляет из стека первый отрицательный элемент, если такой есть) #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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
#include <iostream>
#include <cstdlib>
#include <ctime>
 
struct TStack
{
   int value;
   TStack* next;
};
 
//-----------------------------------------------------------------------------
TStack* Push(TStack*& stack, int value)
{
   TStack* node = new TStack;
   node->value = value;
   node->next = stack;
 
   stack = node;
 
   return stack;
}
//-----------------------------------------------------------------------------
void Clear(TStack*& stack)
{
   TStack* node;
 
   while (stack)
   {
      node = stack;
      stack = stack->next;
      delete node;
   }
}
//-----------------------------------------------------------------------------
bool IsNegative(int value)
{
   return (value < 0);
}
//-----------------------------------------------------------------------------
TStack*& FindElement(TStack*& stack, bool func(int))
{
   if (stack && !func(stack->value))
   {
      return FindElement(stack->next, func);
   }
 
   return stack;
}
//-----------------------------------------------------------------------------
TStack* DeleteFirstNegative(TStack*& stack)
{
   TStack*& find = FindElement(stack, IsNegative);
 
   if (find)
   {
      TStack* node = find;
      find = find->next;
 
      delete node;
   }
 
   return stack;
}
//-----------------------------------------------------------------------------
int Random(int min, int max)
{
   return (rand() % (max - min) + min);
}
//-----------------------------------------------------------------------------
TStack* GetGenStack(size_t count, int min, int max)
{
   TStack* stack = NULL;
 
   while (count--)
   {
      Push(stack, Random(min, max));
   }
 
   return stack;
}
//-----------------------------------------------------------------------------
std::ostream& operator << (std::ostream& out, const TStack* stack)
{
   for (; stack; stack = stack->next)
   {
      out << stack->value << " ";
   }
 
   return out;
}
//-----------------------------------------------------------------------------
 
int main()
{
   srand(time(NULL));
 
   TStack* stack = GetGenStack(10, -10, 10);
 
   std::cout << "source: " << stack << std::endl;
 
   DeleteFirstNegative(stack);
 
   std::cout << "result: " << stack << std::endl;
 
   system("pause");
 
   Clear(stack);
 
   return 0;
}
Стеки (функция, которая удаляет из стека первый отрицательный элемент, если такой есть)

Результат выполнения на codepad.org

Бинарник + исходник: program.7z
fastfoood
0 / 0 / 0
Регистрация: 09.03.2015
Сообщений: 32
02.04.2015, 18:22     Стеки (функция, которая удаляет из стека первый отрицательный элемент, если такой есть) #3
anmartex, привет,а не мог бы ты помочь в след задании?
Удалить из списка первый отрицательный элемент, если такой есть
Yandex
Объявления
02.04.2015, 18:22     Стеки (функция, которая удаляет из стека первый отрицательный элемент, если такой есть)
Ответ Создать тему
Опции темы

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