07.05.2013, 23:35 | #1 (permalink) |
Новичок
Регистрация: 07.05.2013
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Стеки
Из двух стеков с упорядоченными по возрастанию элементами создать новый стек с упорядоченными элементами, не удаляя исходные стеки. Программу реализовать с помощью массивов и односвязных списков. С помощью массивов я сделал. Помогите реализовать это все с помощью списков. Язык программирования 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; } |
07.05.2013, 23:35 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
На форуме часто встречаются похожие темы, посмотрите топики которые похожи на ваш Стеки |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
Опции темы | |
Опции просмотра | |
|
|