0 / 0 / 0
Регистрация: 19.03.2012
Сообщений: 49
1

Из двух стеков с упорядоченными по возрастанию элементами создать новый стек с упорядоченными элементами, не у

08.12.2014, 21:41. Показов 1055. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте. Помогите пожалуйста с программой
Из двух стеков с упорядоченными по возрастанию элементами создать новый стек с упорядоченными элементами, не удаляя исходные стеки. Программу реализовать с помощью массивов и односвязных списков. С помощью массивов я сделал. Помогите реализовать это все с помощью списков. Язык программирования C++.
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
#include <iostream>
using namespace std;
 
int main()
{
    setlocale ( LC_ALL, "russian" );
    int n = 3;
    int stek_a [n], stek_b [n], stek_c [n + n];
    int v_a = -1, v_b = -1, v_c = -1;
    char s;
    bool f = true;
    // Заполнение стека 1
    while (( v_a < n-1 ) && ( f == true ))
    {
        v_a ++;
        cout << "Vvedite elementi steka A: ";
        cin >> stek_a [v_a];
        cout << "Zelaete li prodolzit? (y/n): ";
        cin >> s;
        if ( s == 'n' )
        f = false;
    }
    // Заполнение стека 2
    while (( v_b < n-1 ) && ( f == true ))
    {
        v_b ++;
        cout << "Vvedite elementi steka B: ";
        cin >> stek_b [v_b];
        cout << "Zelaete li prodolzit? (y/n):  ";
        cin >> s;
        if ( s == 'n' )
        f = false;
    }
    // Заполнение стека 3
    while (( v_a > -1 ) || ( v_b > -1 ))
    {
        if (( v_a > -1 ) && ( v_b > -1 ))
        {
            if ( stek_a [v_a] >= stek_b [v_b])
            {
                v_c ++;
                stek_c [v_c] = stek_a [v_a];
                v_a --;
            }
            else
            {
                v_c ++;
                stek_c [v_c] = stek_b [v_b];
                v_b --;
            }
        }
        if (( v_a == -1 ) && ( v_b > -1 ))
        {
            v_c ++;
            stek_c [v_c] = stek_b [v_b];
            v_b --;
        }
        if (( v_b == -1 ) && ( v_a > -1 ))
        {
            v_c ++;
            stek_c [v_c] = stek_a [v_a];
            v_a --;
        }
    }
    while ( v_c > -1 )
    {
        cout << "Element " << v_c << "steka C = " << stek_c [v_c] << endl;
        v_c --;
    }
    system ( "pause" );
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.12.2014, 21:41
Ответы с готовыми решениями:

Из двух стеков с упорядоченными по возрастанию элементами создать новый стек с упорядоченными элементами, не удаляя исходные стеки
Из двух стеков равной длины с вещественными числами создать 1 стек с квадратами значений элементов...

Из двух стеков с упорядоченными по возрастанию элементами создать новый стек с упорядоченными элементами, не удаляя исходные стеки
Здравствуйте. Помогите пожалуйста с программой Из двух стеков с упорядоченными по возрастанию...

Из нечетных элементов двух стеков с упорядоченными элементами создать новый стек с упорядоченными элементам
Из нечетных элементов двух стеков с упорядоченными элементами создать новый стек с упорядоченными...

Создать однонаправленный список с упорядоченными по возрастанию элементами
Fisierul text INPUT.TXT contine pe fiecareb linie cite un numar real. Scrieti un program, fara a...

1
91 / 74 / 81
Регистрация: 07.12.2014
Сообщений: 303
08.12.2014, 22:23 2
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
#include <iostream>
#include <math.h>
using namespace std;
int k = 1;
int p = 2;
 
struct s
{
    int ind;
    s *next;
};
void udal(s *begin);
s* cr(s *);
s* cr1(s *, int);
void f(s **);
void v(s *);
void z_5(s *, s *);
 
void main()
{
    s *begin = NULL;
    s *begin1 = NULL;
    cout << "Enter elements of 1 stek" << endl;
    for (int j = 1; j<4; j++)
        begin = cr(begin);
    cout << "Enter elements of 2 stek" << endl;
    for (int j = 1; j<4; j++)
        begin1 = cr(begin1);
    v(begin);
    cout << endl;
    v(begin1);
    cout << endl;
    z_5(begin,begin1);
    f(&begin);
    f(&begin1);
    system("pause");
 
}
s* cr(s *begin)
{
    
    s* i = new s;
    
    cin >> i->ind;
    i->next = begin;
    return i;
}
void v(s *begin)
{
    s *i = begin;
    if (begin == NULL)
    {
        cout << "Spisok pust";
        return;
    }
    while (i != NULL)
    {
        cout << i->ind << " ";
        i = i->next;
    }
}
void f(s **begin)
{
    s *i;
    while (*begin != NULL)
    {
        i = *begin;
        *begin = (*begin)->next;
        free(i);
    }
}
s* cr1(s *begin, int t)
{
    s *k = new s;
    k->ind = t;
    k->next = begin;
    return k;
}
 
 
 
void z_5(s *begin, s *begin1)
{
    s *b = NULL;
    s *i = begin;
    s *a = begin1;
 
    while (i != NULL && a != NULL)
    {
        if (a->ind > i->ind) { b=cr1(b,a->ind); a=a->next; }
        else { b = cr1(b, i->ind); i = i->next; }
        
    }
    while (i != NULL)
    {
        b = cr1(b, i->ind); i = i->next;
    }
    while (a != NULL)
    {
        b = cr1(b, a->ind); a = a->next;
    }
 
    v(b);
    f(&b);
 
}
1
08.12.2014, 22:23
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.12.2014, 22:23
Помогаю со студенческими работами здесь

Вывести список с чётными элементами упорядоченными по возрастанию
Дорогие форумчане, помогите, часть выполнил, со второй загвоздка: &quot;вывести список с чётными...

Заполнить третий стек общими элементами для первых двух стеков
Даны два стека и необходимо заполнить третий общими элементами для первый двух. Не знаю как...

Ввести двумерный массив 10х10 и создать одномерный массив с упорядоченными по убыванию элементами двумерного массива.
Здравствуйте, срочно нужна помощь! 1. Ввести двумерный массив 10х10 и создать одномерный массив...

Объединить файлы в новый файл так, чтобы его элементы также оказались упорядоченными по возрастанию
Даны два файла вещественных чисел с именами S1 и S2, элементы ко- торых упорядочены по...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru