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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Пересечение строк матриц http://www.cyberforum.ru/cpp-beginners/thread393454.html
Доброго времени суток :) Нужна помощь в составлении кусочка кода, который реализует пересечение строк матриц... Например дано два массива n и m и надо получить третий массив g с общими строками массивов n и m Сидел извращался с вложенными циклами, но ничего хорошего не вышло, поэтому и требуется помощь :(
C++ Конструктор копирования(быстрый вопрос) Вроде бы все просто и логично, но в итоге выполнения B не копируется в A :C why? #include <iostream> using namespace std; class Int { int a; public: Int() {a = 0;} Int(int A) {a = A;} http://www.cyberforum.ru/cpp-beginners/thread393449.html
Неправильная работа с файлами C++
#include <iostream.h> #include <fstream.h> #include <windows.h> #include <string> struct student { char name; char address; int old; //int marks;
C++ Графика с (задача)
Медленное печатание. Заданный текст печатать крупными буквами с некоторыми паузами между буквами, сопровождая каждую букву звуковым щелчком. Перенос осуществлять только целыми словами. Помогите с исходником.
C++ Шаблонная функция http://www.cyberforum.ru/cpp-beginners/thread393440.html
Учу c++, в книге приводится вот такой листинг примера работы шаблонной функции, однако он не компилится, выдает ошибку error C2668: swap: неоднозначный вызов перегруженной функции вот сам листинг #include <iostream> #include <conio.h> using namespace std; template<typename T> void swap(T &a,T &b); int main()
C++ Параллельное программирование У меня есть задание: Коллективные операции. Работа имитирует реальный поиск в параллельной базе данных. Некоторое множество записей (ключ, данные) распределено по машинам коллектива. Пользователь за головной машиной (№0) вводит некоторый ключ. Головная машина рсапространяет этот ключ в коллективе, после чего все машины ищут у себя записи с таким ключом. Все машины уведомляют головную о... подробнее

Показать сообщение отдельно
Сыроежка
Заблокирован
02.12.2011, 01:27     Стек содержащий только положительные числа
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; 
}
 
Текущее время: 02:24. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru