【练习3.4】

给定两个已排序的表L1和L2,只使用基本的表操作编写计算L1∩L2的过程。

【练习3.5】

给定两个已排序的表L1和L2,只使用基本的表操作编写计算L1∪L2的过程。

 

 

思路比较简单,测试代码如下,两道题比较相似,测试代码就放一起了。

 1 #include <iostream>
 2 #include "linklist.h"
 3 using namespace std;
 4 using namespace linklist;
 5 template class List<int>;
 6 int main(void)
 7 {
 8     List<int> primer;
 9 
10     //原始链表
11     cout << "/*additem()*/" << endl;
12     primer.additem(2);
13     primer.additem(3);
14     primer.additem(5);
15     primer.additem(7);
16     primer.additem(8);
17     primer.additem(11);
18     primer.additem(13);
19     primer.additem(17);
20     primer.additem(23);
21     primer.additem(24);
22     primer.traverse();
23     cout << "\n/*end*/\n\n" << endl;
24 
25     //测试求交
26     cout << "/*intersection()*/" << endl;
27     List<int> odd;
28     odd.additem(3);
29     odd.additem(5);
30     odd.additem(7);
31     odd.additem(9);
32     odd.additem(11);
33     odd.additem(13);
34     odd.additem(15);
35     odd.additem(17);
36     odd.additem(19);
37     odd.additem(21);
38     odd.additem(23);
39     odd.additem(25);
40     odd.additem(27);
41     odd.additem(29);
42     odd.traverse();
43     cout <<"\n"<<flush;
44     odd.intersecton(primer);
45     odd.traverse();
46     cout << "\n/*end*/\n\n" << endl;
47 
48     //测试求并
49     cout << "/*join()*/" << endl;
50     List<int> natural;
51     natural.additem(1);
52     natural.additem(2);
53     natural.additem(4);
54     natural.additem(8);
55     natural.additem(16);
56     natural.traverse();
57     cout << endl;;
58     natural.join(primer);
59     natural.traverse();
60     cout << "\n/*end*/\n\n" << endl;
61 
62     system("pause");
63 }
View Code

相关文章:

  • 2021-08-02
  • 2021-09-02
  • 2021-07-08
  • 2021-10-16
  • 2021-07-24
  • 2021-11-25
  • 2021-05-29
  • 2021-11-23
猜你喜欢
  • 2021-12-11
  • 2022-02-18
  • 2021-10-26
  • 2022-01-19
  • 2022-01-25
  • 2021-10-08
  • 2021-06-04
相关资源
相似解决方案