Стеки
Здравствуйте. Помогите пожалуйста с программой
Из двух стеков с упорядоченными по возрастанию элементами создать новый стек с упорядоченными элементами, не удаляя исходные стеки. Программу реализовать с помощью массивов и односвязных списков. С помощью массивов я сделал. Помогите реализовать это все с помощью списков. Язык программирования C++.
Здравствуйте. Помогите пожалуйста с программой
Из двух стеков с упорядоченными по возрастанию элементами создать новый стек с упорядоченными элементами, не удаляя исходные стеки. Программу реализовать с помощью массивов и односвязных списков. С помощью массивов я сделал. Помогите реализовать это все с помощью списков. Язык программирования C++.
Код:
#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;
}