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

Стек содержащий только положительные числа - C++

Войти
Регистрация
Восстановить пароль
 
ivan777
 Аватар для ivan777
2 / 1 / 1
Регистрация: 10.03.2010
Сообщений: 64
28.11.2011, 02:33     Стек содержащий только положительные числа #1
Итак, я имею стек вот код:

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
// stack a.cpp : main project file.
 
#include "stdafx.h"
#include <cstdlib> 
#include <iostream> 
 
using namespace std; 
 
struct tstk  
{
    int inf;  
    tstk *a;
} ;  
    
    tstk *DelStackAll(tstk *sp)  
    { tstk *spt; int inf;  
    while(sp != NULL) {  
        spt = sp;  
        inf= sp->inf;  
        cout << inf << endl;  
        sp = sp->a;  
        delete spt; }  
    return NULL; }  
    
    tstk *AddStack(tstk *sp, int inf)  
    { tstk *spt=new tstk;  
    spt->inf = inf;  
    spt->a = sp;  
    return spt; }  
    
    tstk *ReadStackD(tstk *sp, int &inf)  
    { 
        if (sp == NULL) return NULL;  
        tstk *spt = sp;  
        inf= sp->inf;  
        sp = sp->a;  
        delete spt;  
        return sp; }  
    int main() 
    { 
        tstk*sp=NULL; 
        int i,j; 
        for(i=-50;i<=50;i++)
        {sp=AddStack(sp,i);
        cout<<i<<endl;
        }
        sp=DelStackAll(sp);
        system("PAUSE"); 
        return EXIT_SUCCESS; 
}
Мне нужно создать новый стек, содержащий только положительные числа из первого стека.
Как это сделать?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.11.2011, 02:33     Стек содержащий только положительные числа
Посмотрите здесь:

C++ Поменять местами столбец матрицы с номером 1 и последний из столбцов, содержащий только положительные элементы
C++ вывести список содержащий только положительные элементы
Сформировать массив, содержащий только те элементы иззначального массива, значение которых больше заданного числа C++
C++ Файл содержит числа и слова. Сформулировать файл, содержащий только числа.
Сформировать текстовый файл, содержащий только числа C++
C++ Записать в массив X только положительные элементы исходного, а в Y только отрицательные
C++ Создать новый стек, содержащий только четные числа из заданного стека
Обрезание массива: оставить только положительные числа C++
C++ Вывести только положительные целые числа в заданном диапазоне
C++ Вывести на экран только положительные целые числа из диапазона от А до В
C++ Развернуть кратчайшую последовательность, которая содержит только положительные числа
C++ Второй стек должен выводить только положительные числа с первого

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ivan777
 Аватар для ivan777
2 / 1 / 1
Регистрация: 10.03.2010
Сообщений: 64
01.12.2011, 22:50  [ТС]     Стек содержащий только положительные числа #2
Что, никто не может подсказать? )
Сыроежка
Заблокирован
02.12.2011, 01:27     Стек содержащий только положительные числа #3
ivan777,

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

Добавлено через 2 часа 27 минут
ivan777,

Я не знаю, работоспособный у вас код или нет. Но если его взять за основу, то функция main будет выглядеть так

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
// stack a.cpp : main project file.
 
#include "stdafx.h"
#include <cstdlib> 
#include <iostream> 
 
using namespace std; 
 
struct tstk  
{
        int inf;  
        tstk *a;
} ;  
        
        tstk *DelStackAll(tstk *sp)  
        { tstk *spt; int inf;  
        while(sp != NULL) {  
                spt = sp;  
                inf= sp->inf;  
                cout << inf << endl;  
                sp = sp->a;  
                delete spt; }  
        return NULL; }  
        
        tstk *AddStack(tstk *sp, int inf)  
        { tstk *spt=new tstk;  
        spt->inf = inf;  
        spt->a = sp;  
        return spt; }  
        
        tstk *ReadStackD(tstk *sp, int &inf)  
        { 
                if (sp == NULL) return NULL;  
                tstk *spt = sp;  
                inf= sp->inf;  
                sp = sp->a;  
                delete spt;  
                return sp; }  
        int main() 
        { 
                tstk*sp=NULL; 
                int i,j; 
                for(i=-50;i<=50;i++)
                {sp=AddStack(sp, ( i % 2 == 0 ? i : -i ) );
                cout<<i<<endl;
                }
                tstk*sp2=NULL;
                while ( sp )
                {
                    int inf;
                    sp = ReadStackD( sp, inf );
                    if ( inf > 0 ) sp2 = AddStack( sp2, inf );
                }
                sp2 = DelStackAll( sp2 );
  
                system("PAUSE"); 
                return EXIT_SUCCESS; 
}
ivan777
 Аватар для ivan777
2 / 1 / 1
Регистрация: 10.03.2010
Сообщений: 64
02.12.2011, 01:53  [ТС]     Стек содержащий только положительные числа #4
Сыроежка, Большое спасибо)
Yandex
Объявления
02.12.2011, 01:53     Стек содержащий только положительные числа
Ответ Создать тему
Опции темы

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