KyuH
1

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

08.04.2013, 23:34. Показов 5045. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте! Помогите пожалуйста разработать функцию, которая удаляет из стека первый отрицательный элемент, если такой есть.
Если не сложно, то ещё учитывая что: "Для организации стека нужно использовать структуру с функциями. Реализовать все операции со стеком через функции. В проекте объявления, определение функций и реализацию алгоритма выполнять в отдельных модулях."
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.04.2013, 23:34
Ответы с готовыми решениями:

Описать функцию, которая удаляет из списка L первый неположительный элемент, если такой есть
Доброго времени суток, возникли затруднения с одной задачей, вот собственно она: Странно что в...

Описать процедуру, которая удаляет из стека первый отрицательный элемент, если такой есть
Описать процедуру, которая удаляет из стека первый отрицательный элемент, если такой есть (опять же...

Удалить первый отрицательный элемент массива, если такой элемент есть
1. Удалить первый отрицательный элемент массива, если такой элемент есть. 2. Вставить два элемента...

Удалить из списка первый отрицательный элемент, если такой есть
Описать процедуру, которая удаляет из списка L первый отрицательный элемент, если такой есть;...

2
...
1906 / 1326 / 965
Регистрация: 12.02.2013
Сообщений: 2,171
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
1
0 / 0 / 0
Регистрация: 09.03.2015
Сообщений: 43
02.04.2015, 18:22 3
anmartex, привет,а не мог бы ты помочь в след задании?
Удалить из списка первый отрицательный элемент, если такой есть
0
02.04.2015, 18:22
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.04.2015, 18:22
Помогаю со студенческими работами здесь

Описать процедуру, которая удаляет из списка L второй элемент, если такой есть
Здравствуйте! Помогите пожалуйста написать программу, совершенно не могу разобраться Вот сама...

Описать процедуру, которая удаляет из списка L второй элемент, если такой есть
Здравствуйте, Дорогие форумчане! Помогите пожалуйста, не знаю как решить задачу. Нужно написать...

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

Описать функцию, которая удаляет из списка L первый отрицательный элемент
Добрый день, у меня возник вопрос по задаче: У меня есть нужная программа, но она удаляет не те...


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

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

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