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

функцию, которая перемещает элементы с 1 стека во второй - C++

Восстановить пароль Регистрация
 
Solka
4 / 3 / 1
Регистрация: 02.10.2010
Сообщений: 20
16.10.2010, 17:39     функцию, которая перемещает элементы с 1 стека во второй #1
из введенных целых чисел сформулировать два списка типа стек. разработать функцию, которая перемещает все элементы с 1 стека во второй, пока значение в вершине Первого стека не станет четным (в основную программу передавать адреса новых вершин первого и второго стеков ... если в 1 стеке НЕТ четным элементов, то в 2 переместить все элементы ) в функции операции выделения и освобождения памяти не использовать

зарание спасибо)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.10.2010, 17:39     функцию, которая перемещает элементы с 1 стека во второй
Посмотрите здесь:

Написать функцию, которая переставляет элементы массива типа int так, что все положительные элементы предшествуют отрицательным. C++
C++ Реализовать функцию, которая переписывает элементы входного массива в обратном порядке
C++ Написать и протестировать функцию, которая в строке, передаваемой ей в качестве параметра, заменяет каждый второй элемент на заданный символ.
Разработать функцию, которая сортирует только положительные элементы массива на своих местах C++
Напишите функцию, которая выводит его элементы в следующем порядке: C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
16.10.2010, 18:42     функцию, которая перемещает элементы с 1 стека во второй #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
#include <iostream>
#include <stack>
#include <cstdlib>
 
template<typename T>
class even {
public:
 
  bool operator () (const std::stack<T>& stk) const;
 
};
 
template<typename T>
bool even<T>::operator () (const std::stack<T>& stk) const {
  if((!stk.empty()) && (stk.top() & 1))
    return true;
  
  return false;
}
 
template<typename T, template<typename> class FUNC>
void move(std::stack<T>& from, std::stack<T>& to, FUNC<T> func) {
  while(func(from)) {
    T temp = from.top();
    from.pop();
    to.push(temp);
  }
}
  
 
int main() {
  std::stack<int> stk1, stk2;
  std::cout << "Введите целые числа (Ctrl+Z или Ctrl+D для окончания ввода)"
        << std::endl;
 
  int num;
  while(std::cin >> num)
    stk1.push(num);
 
  std::cout << "Перемещаем элементы из стека 1 в стек 2:" << std::endl;
  move(stk1, stk2, even<int>());
  std::cout << std::endl << "Вывод получившегося стека:" << std::endl;
 
  while(!stk2.empty()) {
    std::cout << stk2.top() << std::endl;
    stk2.pop();
  }
 
  return EXIT_SUCCESS;
}
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
17.10.2010, 01:40     функцию, которая перемещает элементы с 1 стека во второй #3
Nameless One, Вот это круто.
C++
1
template<typename T, template<typename> class FUNC>
Не знал что так можно. Спасибо!
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
17.10.2010, 05:14     функцию, которая перемещает элементы с 1 стека во второй #4
Lavroff, сам от гугла узнал
TheMachinist
 Аватар для TheMachinist
242 / 174 / 15
Регистрация: 14.06.2010
Сообщений: 422
17.10.2010, 11:18     функцию, которая перемещает элементы с 1 стека во второй #5
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
#include<stack>
#include<iostream>
using namespace std;
 
bool IsOdd(int x) {return x%2 != 0;}
 
int main()
{
    setlocale(LC_ALL,"Rus");
    cout << "Введите целые числа(Ctrl+Z или Ctrl+D для окончания ввода) \n";
    stack<int>Stk1, Stk2;
    int num;
 
    while(cin >> num)
        Stk1.push(num);
    
    while(IsOdd(Stk1.top()))
    {
        Stk2.push(Stk1.top());
        Stk1.pop();
    }
    cout << "Элементы второго стека: ";
while(!Stk2.empty())
{
    cout << " " << Stk2.top();
    Stk2.pop();
}
cout << endl;
system("pause");
}
Yandex
Объявления
17.10.2010, 11:18     функцию, которая перемещает элементы с 1 стека во второй
Ответ Создать тему
Опции темы

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