C ++プログラミング040演習:リスト

北プログラミングとアルゴリズム(C)クイズの概要(2020年春)


説明

:コマンド以下の完全なプログラム書き込み
指定された配列番号IDを作成します(ID <10000) -新しい新しいIDを
整数配列にnum-- ID ID番号を追加NUMの追加
順序で結合ID1 ID1マージをし、ID2 id2--数、及びID2を空
シーケンスIDに一意id--削除繰り返しエレメント
スペースで区切られた、配列番号の要素の多数に小さいから出力- IDアウト

入力
数nの最初の行を、それが注文の数を表す(N <= 200000)。各コマンドの後にn行。
出力
トピックによっては、出力が必要。

样例输入
16
新しい1
新2
アドオン1
アドイン1 2
アドオン1 3
追加2 1
アドオン2 2
アドオン2 3
アド2 4
1アウト
2アウト
マージ1 2
1アウト
2アウト
1ユニーク
1アウト

出力例
。1 2 3
1 2 3 4
。1. 1. 4. 3. 3 2 2

1 2 3 4


分析

これは、listテンプレートを使用するのは簡単

#include<iostream>
#include<list>
using namespace std;
typedef list<int> List;
int main()
{
	List lists[20000];
	List::iterator it;
	int num,count1,count2;
	cin >> num;
	char str[100];
	while(num--){
		cin >> str;
		switch(str[0]){
		case 'a':
			cin >> count1 >> num;
			lists[count1].push_back(num);
			break;
		case 'n':
			cin >> count1; 
			break;
		case 'm':
			cin >> count1 >> count2;
			lists[count1].merge (lists[count2]);
			break;
		case 'u':
			cin >>count1;
			lists[count1].sort();
			lists[count1].unique ();
			break;
		case 'o':
			cin >> count1;
			lists[count1].sort();
			for( it = lists[count1].begin(); it != lists[count1].end(); it ++)
				cout<<*it<<" ";
			cout << endl;
			break;
       }
    }
    return 0;
}
公開された222元の記事 ウォン称賛48 ビュー20000 +

おすすめ

転載: blog.csdn.net/qq_44116998/article/details/104419169