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

Имеется два стека действительных чисел, напишите программу, объединяющую их в один стек - C++

Восстановить пароль Регистрация
 
beathoven
0 / 0 / 0
Регистрация: 12.09.2012
Сообщений: 28
27.03.2014, 21:28     Имеется два стека действительных чисел, напишите программу, объединяющую их в один стек #1
Имеется полностью рабочий код на задачу "Имеется два стека действительных чисел, напишите программу, объединяющую их в один стек." Нужно разбить программу на два модуля:в одном, главном, должна быть прописана функция 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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#include<iostream>
using namespace std;
 
struct Stack1Item
{
  double Data1; //Данные
  Stack1Item* Next; //Указатель на следующий элемент
};
struct Stack2Item
{
  double Data2; //Данные
  Stack2Item* Next; //Указатель на следующий элемент
};
//Функция добавления нового элемента с данными d
//в вершину стека S_Top
void Push(Stack1Item* & S1_Top, double elem1)
{
    Stack1Item* p = new Stack1Item;
    p -> Data1 = elem1;
    p -> Next = S1_Top;
    S1_Top = p;
}
void Push(Stack2Item* & S2_Top, double elem2)
{
    Stack2Item* p = new Stack2Item;
    p -> Data2 = elem2;
    p -> Next = S2_Top;
    S2_Top = p;
}
//удаление элемента из вершины стека;
double Pop(Stack1Item* & S1_Top) 
{
    double Data1;
    if (S1_Top == NULL)
        return -1.0;
    Stack1Item* p = S1_Top;
    Data1 = p -> Data1;
    S1_Top = S1_Top -> Next;
    delete p;
    return Data1;
}
//Функция проверки пустоты стека 
bool IsEmpty(Stack1Item* & S1_Top)
{
return S1_Top == NULL;
}
//функция печати содержимого стека
void Print(Stack1Item* S1_Top)
{
    for(Stack1Item* p = S1_Top; p; p = p -> Next)
        cout << p -> Data1 << " ";
    cout << endl;
}
void Print(Stack2Item* S2_Top)
{
    for(Stack2Item* p = S2_Top; p; p = p -> Next)
        cout << p -> Data2 << " ";
    cout << endl;
}
int main()
{
    Stack1Item* S1_Top = NULL;
    Push(S1_Top, 11.2);
    Push(S1_Top, 3.1);
    Push(S1_Top, 6.0);
    Print(S1_Top);
    Stack2Item* S2_Top = NULL;
    Push(S2_Top, 12.2);
    Push(S2_Top, 3.5);
    Push(S2_Top, 6.2);
    Print(S2_Top);
    while (!IsEmpty(S1_Top))
    {
    Push(S2_Top,Top(S1_Top));
    Pop(S1_Top);
    }
    Print(S2_Top);
}
Добавлено через 1 час 11 минут
Модули сделал. Вопрос о засовывании двух стеков в одну структуру остаётся открытым.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.03.2014, 21:28     Имеется два стека действительных чисел, напишите программу, объединяющую их в один стек
Посмотрите здесь:

C++ Заданы два одномерных массива действительных чисел различных размеров. Объединить их в один массив, включив второй массив между k-м и (k+1)-м элемента
C++ Стек в два стека
Дано 8 действительных чисел. Вычислить сумму квадратов разностей корней из модулей действительных чисел C++
Структура стек (: добавить элемент в стек, удалить элемент из стека, получить значение с вершины стека, размер стека...) C++
Сформировать стек по файлу чисел. Удалить из стека узлы с минимальным значением информационного поля C++
Напишите программу определения частного действительных чисел C++
Имеется матрица вещественных чисел 4*4. Напишите функцию, которая находит сумму элементов на побочной диагонали C++
C++ Разделить стек на два стека

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

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

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