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

Рекурсивный вывод стека с использованием классов - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Сколько врени надо для выполнения программы http://www.cyberforum.ru/cpp-beginners/thread22079.html
Всем привет. В учебнике дейтела есть программа которая тасует карты. когда я скомпилил листинг программа не зависает, а долго думает. во всем виноват наибездарнейший цикл в функции shuffle(). скажите кто-нибудь сколько примерно времени надо для выполнения этой программы. класс: class DeskOfCards { public: DeskOfCards(); void shuffle(); //тасует карты void deal(); //сдает карты...
C++ Какая функция в С++ берет только дробную часть от числа? Какая функция в С++ берет только дробную часть от числа?:) http://www.cyberforum.ru/cpp-beginners/thread22070.html
Нужно записать массив в файл, а потом из этого файла считать этот же массив C++
Помогите, пожалуйста, никогда с файлами делов не имела. Нужно записать массив в файл, а потом из этого файла считать этот же массив. Как это сделать на чистом Си?
C++ Вычислить и вывести на экран в виде таблицы значения функции, заданной с помощью ряда Тейлора
Вот сама задачка.:) Вычислить и вывести на экран в виде таблицы значения функции, заданной с помощью ряда Тейлора, на интервале от x нач. до x кон. с шагом dx с точностью eps. Таблицу снабдить заголовком и шапкой. Каждая строка таблицы должна содержать значение аргумента, значение функции и количество просуммированных членов ряда. вот что у меня получилось ...
C++ Разместить на побочной диагонали матрицы суммы элементов, которые лежат на диагоналях, перпендикулярных к побочной. http://www.cyberforum.ru/cpp-beginners/thread22042.html
суть задачи : Заполнить матрицу случайными числами. Разместить на побочной диагонали суммы элементов, которые лежат на диагоналях, перпендикулярных к побочной. Вот что есть. Но программа не выводит нужный результат. Буду признательна любой подсказке. Заранее спасибо !!! #include <stdio.h> #include <time.h> #include <stdlib.h> int Ar; int main(void) {
C++ Конструктор Создать абстрактный тип данных - класс вектор, который имеет указатель на float, число элементов и переменную состояния. Определить конструктор без параметров, конструктор с параметром, конструктор с двумя параметрами. Конструктор без параметров выделяет место для одного элемента и инициализирует его в ноль. Конструктор с одним параметром, - размер вектора, - выделяет место и инициализирует... подробнее

Показать сообщение отдельно
Leksa
0 / 0 / 0
Регистрация: 31.01.2009
Сообщений: 3
31.01.2009, 18:50  [ТС]
Это влт без классов:

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
#include <iostream>
#include <stdio.h>
#include <malloc.h>
using namespace std;
struct Node
{
    int data;
    Node* prev;
};
 
Node* push(Node* top, int d)
{
    Node* tmp = new Node;
    tmp->data=d;
    tmp->prev=top;
    return tmp;
}
 
Node* pop(Node* top, int &d)
{
    d=top->data;
    Node* tmp=top->prev;
    delete(top);
    return tmp;
 
}
Node* create(Node* top)
{
    int j, n;
    cout <<"vvedite kol-vo elementov"<<endl;
    cin>>n;
    cout<<"vvedite elementi"<<endl;
    for (int i=1; i<=n; i++)
    {
        cin >> j;
        top=push(top,j);
 
    }
    return top;
}
void print_stack(Node* top)
{
    Node* tmp=top;
    while (tmp)
    {
        cout << tmp->data <<" ";
        tmp=tmp->prev;
    }
    cout << endl;
}
 
void recurse(Node*top)
{
    if(top){
        recurse(top->prev);
        cout<<top->data<<" ";}}
int main()
{
    Node* top=0;
    top=create(top);
    cout<<"vivod v priamom poriadke"<<endl;
    print_stack(top);
    cout<<"vivod v obratnom poriadke"<<endl;
    recurse(top);
    return 0;
}
Добавлено через 2 часа 20 минут 40 секунд

И еще есть заголовочник, в который надо эту рекурсию втавить


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
#ifndef INIT_STACK_H_INCLUDED
#define INIT_STACK_H_INCLUDED
#include <iostream.h>
template <class Nd>
class Stack
{
public:
    Stack(int=10);
    ~Stack() {delete [] stackPtr;}
    int isEmpty() const {return top==-1;}
    int isFull() const {return top==size-1;}
    int push(const Nd&);
    int pop(Nd&);
    int recurse(Nd&);
private:
    int size;
    int top;
    Nd *stackPtr;
};
 
template<class Nd>
Stack<Nd>::Stack(int s)
{
    size=s>0 && s<1000 ? s:10;
    top=-1;
    stackPtr=new Nd[size];
}
 
template<class Nd>
int Stack<Nd>:: push(const Nd &item)
{
    if (!isFull())
    {
        stackPtr[++top]=item;
        return 1;
    }
    return 0;
}
template<class Nd>
int Stack<Nd>:: pop(Nd &popValue)
{
    if (!isEmpty())
    {
        popValue=stackPtr[top--];
        return 1;
    }
    return 0;
}
#endif // INIT_STACK_H_INCLUDED
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru