【练习3.26】

双端队列(deque)是由一些项的表组成的数据结构,对该数据结构可以进行下列操作:

Push(X,D):将项X插入到双端队列D的前端。

Pop(D):从双端队列D中删除前端项并返回。

Inject(X,D):将项X插入到双端队列D的尾端。

Eject(D):从双端队列D中删除尾端项并返回。

编写支持双端队列的例程,每种操作均花费O(1)时间。

 

Answer:

相当简单的题目,把改一改双向链表就可以了。

测试代码:

 1 #include <iostream>
 2 #include "double_linklist.h"
 3 using namespace std;
 4 using namespace doublelinklist;
 5 template class DList<int>;
 6 int main(void)
 7 {
 8     DList<int> number;
 9     number.additem(2);
10     number.additem(3);
11     number.additem(5);
12     number.additem(7);
13     
14     //测试前后插入
15     number.push(11);
16     number.inject(13);
17     number.inject(17);
18     number.push(19);
19     number.traverse();
20     cout << "\n/*end*/\n\n" << flush;
21 
22     //测试前后删除
23     number.pop();
24     number.pop();
25     number.pop();
26     number.eject();
27     number.eject();
28     number.traverse();
29 
30     system("pause");
31 }
View Code

相关文章: