problemscpp
A collection of my answers to algorithm problems in c++.
| 函数
pat::b::b1075 命名空间参考

1075 链表元素分类 更多...

struct  Node
 

函数

int main (istream &cin, ostream &cout)
 
 TEST (b1075, case1)
 

详细描述

1075 链表元素分类

函数说明

◆ main()

int pat::b::b1075::main ( istream &  cin,
ostream &  cout 
)

在文件 pat.cpp2630 行定义.

2630 {
2631 string current;
2632 int n;
2633 int k;
2634 cin >> current >> n >> k;
2635 unordered_map<string, Node> um;
2636 for(int i = 0; i < n; i++) {
2637 Node node;
2638 cin >> node.addr;
2639 cin >> node.data;
2640 cin >> node.next;
2641 um[node.addr] = node;
2642 }
2643 vector<Node> vec1;
2644 vector<Node> vec2;
2645 vector<Node> vec3;
2646 while(current != "-1") {
2647 Node node = um[current];
2648 if(node.data < 0) {
2649 vec1.push_back(node);
2650 } else if(node.data <= k) {
2651 vec2.push_back(node);
2652 } else {
2653 vec3.push_back(node);
2654 }
2655 current = node.next;
2656 }
2657 vector<Node> vec;
2658 vec.insert(vec.end(), vec1.begin(), vec1.end());
2659 vec.insert(vec.end(), vec2.begin(), vec2.end());
2660 vec.insert(vec.end(), vec3.begin(), vec3.end());
2661 for(int i = 0; i < vec.size(); i++) {
2662 Node node = vec[i];
2663 cout << node.addr << ' ' << node.data << ' ' << (i + 1 < vec.size() ? vec[i + 1].addr : "-1") << endl;
2664 }
2665 return 0;
2666 }
int vec[100010]
Definition: pat.cpp:5095
string addr
Definition: pat.h:459
string next
Definition: pat.h:461

引用了 pat::b::b1075::Node::addr, pat::b::b1075::Node::data, pat::b::b1075::Node::next , 以及 pat::a::a7_2::vec.

被这些函数引用 TEST().

◆ TEST()

pat::b::b1075::TEST ( b1075  ,
case1   
)

在文件 pat_test.cpp1242 行定义.

1242 {
1243 istringstream in("00100 9 10\n"
1244 "23333 10 27777\n"
1245 "00000 0 99999\n"
1246 "00100 18 12309\n"
1247 "68237 -6 23333\n"
1248 "33218 -4 00000\n"
1249 "48652 -2 -1\n"
1250 "99999 5 68237\n"
1251 "27777 11 48652\n"
1252 "12309 7 33218");
1253 auto out = ostringstream();
1254 main(in, out);
1255 const auto ans = out.str();
1256 ASSERT_EQ("33218 -4 68237\n"
1257 "68237 -6 48652\n"
1258 "48652 -2 12309\n"
1259 "12309 7 00000\n"
1260 "00000 0 99999\n"
1261 "99999 5 23333\n"
1262 "23333 10 00100\n"
1263 "00100 18 27777\n"
1264 "27777 11 -1\n",
1265 out.str());
1266 }
int main(int argc, char **argv)
Definition: main.cpp:5

引用了 main().