【练习3.3】
通过之调整指针(而不是数据)来交换两个相邻的元素,使用
a.单链表
b.双链表
Answer:
先放测试代码,折叠标题可以看到分别是哪种链表的测试。
实测可满足题意,但单链表和双链表的两段代码是分开实现的,所以需要分开测试。
如果要合在一起的话,需要改一下头文件包含以及命名空间。
单链表测试代码:
1 #include <iostream> 2 #include "linklist.cpp" 3 using namespace std; 4 using namespace linklist; 5 template class List<int>; 6 int main(void) 7 { 8 List<int> number; 9 10 //原始链表 11 cout << "/*additem()*/" << endl; 12 number.additem(2); 13 number.additem(3); 14 number.additem(5); 15 number.additem(7); 16 number.additem(11); 17 number.additem(13); 18 number.additem(17); 19 number.traverse(); 20 cout << "\n/*end*/\n\n" << endl; 21 22 //测试交换顺序,头节点与中间节点各一 23 cout << "/*swappos()*/" << endl; 24 number.swappos(number.find(11)); 25 number.swappos(number.find(2)); 26 number.traverse(); 27 cout << "/*end*/\n\n" << endl; 28 29 system("pause"); 30 }