c ++ Programming Exercises 040: List

North programming and algorithms (c) quiz summary (Spring 2020)


description

Write a complete program following command:
new new id - Create a designated sequence number id (id <10000)
the Add num-- id id number to integer sequences added NUM
Merge id1 id1 and id2 id2-- combined in sequence number, and id2 emptied
unique id-- remove repeated elements in sequence id
out id - output from small to large number of elements of a sequence id, separated by a space

Enter
the first line of a number n, it represents the number of order (n <= 200000). After n lines each command.
Output
by topic required output.

样例输入
16
new 1
new 2
add 1 1
add 1 2
add 1 3
add 2 1
add 2 2
add 2 3
add 2 4
out 1
out 2
merge 1 2
out 1
out 2
unique 1
out 1

Sample output
. 1 2. 3
. 1 2. 4. 3
. 1. 1. 4. 3. 3 2 2

1 2 3 4


analysis

This is listsimple to use templates

#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;
}
Published 222 original articles · won praise 48 · views 20000 +

Guess you like

Origin blog.csdn.net/qq_44116998/article/details/104419169