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

объект динамический стек - C++

Восстановить пароль Регистрация
 
ds102061
 Аватар для ds102061
2 / 2 / 2
Регистрация: 13.10.2010
Сообщений: 144
29.05.2013, 20:50     объект динамический стек #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
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
#include "stdafx.h"
#include <iostream>
#include <cstdlib>
using namespace std;
 
struct STACK {
    int info; 
    STACK *next;
};
 
int Empty(STACK *pstack)
{
    if (pstack==NULL) 
    return 0; 
    else 
    return 1;
}
 
void Add(STACK **pstack)
{
    STACK *tmp = new STACK; 
    tmp->info=rand()%100; 
    tmp->next=*pstack; 
    *pstack=tmp;
}
 
void Del(STACK **pstack)
{
    STACK *tmp=*pstack; 
    *pstack=(*pstack)->next; 
    delete tmp;
}
 
void Show(STACK *pstack)
{
    STACK *tmp=pstack; 
    while(tmp!=NULL) 
    { 
        cout << tmp->info << " "; 
        tmp=tmp->next; 
    }
}
 
void ClearAll(STACK **pstack)
{
    STACK *tmp; 
    while(*pstack!=NULL) 
    { 
        tmp=*pstack; 
        *pstack=(*pstack)->next; 
    delete tmp; 
    }
}
 
int main()
{
    setlocale(LC_ALL,"Russian"); 
    STACK *stack=NULL; 
    int num; 
    char otv; 
    do 
    { 
        cout << "1. Добавление элементов в вершину стека" << endl 
            << "2. Удаление элемента из вершины стека" << endl 
            << "3. Вывод элементов" << endl 
            << "0. Выход" << endl; 
            cout << " = "; 
            cin >> otv; 
            switch(otv) 
        { 
        case '1': 
        cout << endl << "Сколько элементов добавить" << endl; 
        cin >> num; 
        for ( int i=0;i<num;i++) 
        Add(&stack); 
        cout << endl << "Элементы добавлены" << endl; 
        break;
        case '2':
        if (Empty(stack)==0) 
        cout << endl << "Стек пуст" << endl; 
        else 
{ 
Del(&stack); 
cout << endl << "Элемент удален из вершины стека" << endl; 
} 
break;
case '3':
if (Empty(stack)==0) 
cout << endl << "Стек пуст" << endl; 
else 
{ 
cout << endl << "Элементы стека:" << endl; 
Show(stack); 
cout << endl; 
} 
break;
case '0':
ClearAll(&stack); 
break; 
default: 
cout << endl << "Ошибка" << endl; 
break;
}
 
}while(otv!='0');
cin.get();
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.05.2013, 20:50     объект динамический стек
Посмотрите здесь:

Динамический объект не содержит в себе линамических членов. Удалять ли его? C++
C++ Динамический глобальный объект.
C++ Статический и динамический стек
C++ Сформировать динамический список (стек или очередь), считая, что длина списка (количество элементов) задана
C++ динамический стек (перегрузить операции +, +=, -= в динами)
C++ Динамический объект класса и деструктор
Как передать объект "Стек" в функцию? C++
C++ Создать объект стек и создать объект очередь с перегруженными операциями

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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