-
Notifications
You must be signed in to change notification settings - Fork 1
/
sjtu-oj1203-hw.cpp
100 lines (97 loc) · 1.95 KB
/
sjtu-oj1203-hw.cpp
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
#include <iostream>
using namespace std;
template <class T>
class linkedList {
private:
class listNode {
public:
T value;
listNode *next;
listNode() :value(0), next(nullptr) {}
listNode(T v) :value(v), next(nullptr) {}
};
public:
listNode *headNode;
listNode *tailNode;
linkedList() {
headNode = new listNode();
tailNode = headNode;
}
void appendVal(T val) {
tailNode->next = new listNode(val);
tailNode = tailNode->next;
}
void printSelf() {
listNode *cur = headNode->next;
while (cur) {
cout << cur->value << " ";
cur = cur->next;
}
return;
}
void appendList(linkedList<T> *L) {
this->tailNode->next = L->headNode->next;
return;
}
};
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
char *type_name = new char[20];
cin >> type_name;
int a, b;
cin >> a >> b;
switch (*type_name) {
case 'i': {
linkedList<int> *l1 = new linkedList<int>();
linkedList<int> *l2 = new linkedList<int>();
int tmp;
for (int i = 0; i < a; i++) {
cin >> tmp;
l1->appendVal(tmp);
}
for (int i = 0; i < b; i++) {
cin >> tmp;
l2->appendVal(tmp);
}
l1->appendList(l2);
l1->printSelf();
break;
}
case 'c': {
linkedList<char> *l1 = new linkedList<char>();
linkedList<char> *l2 = new linkedList<char>();
char tmp;
for (int i = 0; i < a; i++) {
cin >> tmp;
while (tmp == ' ') cin >> tmp;
l1->appendVal(tmp);
}
for (int i = 0; i < b; i++) {
cin >> tmp;
while (tmp == ' ') cin >> tmp;
l2->appendVal(tmp);
}
l1->appendList(l2);
l1->printSelf();
break;
}
case 'd': {
linkedList<double> *l1 = new linkedList<double>();
linkedList<double> *l2 = new linkedList<double>();
double tmp;
for (int i = 0; i < a; i++) {
cin >> tmp;
l1->appendVal(tmp);
}
for (int i = 0; i < b; i++) {
cin >> tmp;
l2->appendVal(tmp);
}
l1->appendList(l2);
l1->printSelf();
break;
}
}
return 0;
}