C++ 程序在 STL 中实现双端队列

c++server side programmingprogramming

双端队列是一种队列数据结构,其中插入和删除操作在两端(前端和后端)执行。数据可以插入到前端和后端位置,也可以从前端和后端位置删除。

算法

开始
    声明双端队列向量和迭代器。
    根据选择获取输入。
    调用 switch 操作中的函数:
    d.size() = 返回队列的大小。
    d.push_back() = 用于从后端将元素推入双端队列。
    d.push_front() = 用于从前端将元素推入双端队列。
    d.pop_back() = 用于从后端弹出或删除双端队列中的元素。
    d.pop_front() = 用于从前端弹出或删除双端队列中的元素。
    d.front() = 返回双端队列的前面元素。
    d.back() = 返回双端队列的后面元素。
    打印双端队列的元素。
结束。

示例代码

#include<iostream>
#include <deque>
#include <string>
#include <cstdlib>
using namespace std;
int main() {
   deque<int> d;
   deque<int>::iterator it;
   int c, item;
   while (1) {
      cout<<"1.Size of the Deque"<<endl;
      cout<<"2.Insert Element at the End"<<endl;
      cout<<"3.Insert Element at the Front"<<endl;
      cout<<"4.Delete Element at the End"<<endl;
      cout<<"5.Delete Element at the Front"<<endl;
      cout<<"6.Front Element at Deque"<<endl;
      cout<<"7.Last Element at Deque"<<endl;
      cout<<"8.Display Deque"<<endl;
      cout<<"9.Exit"<<endl;
      cout<<"Enter your Choice: ";
      cin>>c;
      switch(c) {
         case 1:
            cout<<"Size of the Deque: "<<d.size()<<endl;
         break;
         case 2:
            cout<<"Enter value to be inserted at the end: ";
            cin>>item;
            d.push_back(item);
         break;
         case 3:
            cout<<"Enter value to be inserted at the front: ";
            cin>>item;
            d.push_front(item);
         break;
         case 4:
            item = d.back();
            d.pop_back();
            cout<<"Element "<<item<<" deleted"<<endl;
         break;
         case 5:
            item = d.front();
            d.pop_front();
            cout<<"Element "<<item<<" deleted"<<endl;
         break;
         case 6:
            cout<<"Front Element of the Deque: ";
            cout<<d.front()<<endl;
         break;
         case 7:
            cout<<"Back Element of the Deque: ";
            cout<<d.back()<<endl;
         break;
         case 8:
            cout<<"Elements of Deque: ";
            for (it = d.begin(); it != d.end(); it++)
               cout<<*it<<" ";
            cout<<endl;
         break;
         case 9:
            exit(1);
         break;
         default:
            cout<<"Wrong Choice"<<endl;
      }
   }
   return 0;
}

输出

1.Size of the Deque
2.Insert Element at the End
3.Insert Element at the Front
4.Delete Element at the End
5.Delete Element at the Front
6.Front Element at Deque
7.Last Element at Deque
8.Display Deque
9.Exit

Enter your Choice: 1
Size of the Deque: 0
1.Size of the Deque
2.Insert Element at the End
3.Insert Element at the Front
4.Delete Element at the End
5.Delete Element at the Front
6.Front Element at Deque
7.Last Element at Deque
8.Display Deque
9.Exit

Enter your Choice: 2
Enter value to be inserted at the end: 1
1.Size of the Deque
2.Insert Element at the End
3.Insert Element at the Front
4.Delete Element at the End
5.Delete Element at the Front
6.Front Element at Deque
7.Last Element at Deque
8.Display Deque
9.Exit

Enter your Choice: 3
Enter value to be inserted at the front: 2
1.Size of the Deque
2.Insert Element at the End
3.Insert Element at the Front
4.Delete Element at the End
5.Delete Element at the Front
6.Front Element at Deque
7.Last Element at Deque
8.Display Deque
9.Exit

Enter your Choice: 6
Front Element of the Deque: 2
1.Size of the Deque
2.Insert Element at the End
3.Insert Element at the Front
4.Delete Element at the End
5.Delete Element at the Front
6.Front Element at Deque
7.Last Element at Deque
8.Display Deque
9.Exit

Enter your Choice: 7
Back Element of the Deque: 1
1.Size of the Deque
2.Insert Element at the End
3.Insert Element at the Front
4.Delete Element at the End
5.Delete Element at the Front
6.Front Element at Deque
7.Last Element at Deque
8.Display Deque
9.Exit

Enter your Choice: 1
Size of the Deque: 2
1.Size of the Deque
2.Insert Element at the End
3.Insert Element at the Front
4.Delete Element at the End
5.Delete Element at the Front
6.Front Element at Deque
7.Last Element at Deque
8.Display Deque
9.Exit

Enter your Choice: 8
Elements of Deque: 2 1
1.Size of the Deque
2.Insert Element at the End
3.Insert Element at the Front
4.Delete Element at the End
5.Delete Element at the Front
6.Front Element at Deque
7.Last Element at Deque
8.Display Deque
9.Exit

Enter your Choice: 2
Enter value to be inserted at the end: 4
1.Size of the Deque
2.Insert Element at the End
3.Insert Element at the Front
4.Delete Element at the End
5.Delete Element at the Front
6.Front Element at Deque
7.Last Element at Deque
8.Display Deque
9.Exit

Enter your Choice: 3
Enter value to be inserted at the front: 5
1.Size of the Deque
2.Insert Element at the End
3.Insert Element at the Front
4.Delete Element at the End
5.Delete Element at the Front
6.Front Element at Deque
7.Last Element at Deque
8.Display Deque
9.Exit

Enter your Choice: 8
Elements of Deque: 5 2 1 4
1.Size of the Deque
2.Insert Element at the End
3.Insert Element at the Front
4.Delete Element at the End
5.Delete Element at the Front
6.Front Element at Deque
7.Last Element at Deque
8.Display Deque
9.Exit

Enter your Choice: 4
Element 4 deleted
1.Size of the Deque
2.Insert Element at the End
3.Insert Element at the Front
4.Delete Element at the End
5.Delete Element at the Front
6.Front Element at Deque
7.Last Element at Deque
8.Display Deque
9.Exit

Enter your Choice: 5
Element 5 deleted
1.Size of the Deque
2.Insert Element at the End
3.Insert Element at the Front
4.Delete Element at the End
5.Delete Element at the Front
6.Front Element at Deque
7.Last Element at Deque
8.Display Deque
9.Exit

Enter your Choice: 8
Elements of Deque: 2 1
1.Size of the Deque
2.Insert Element at the End
3.Insert Element at the Front
4.Delete Element at the End
5.Delete Element at the Front
6.Front Element at Deque
7.Last Element at Deque
8.Display Deque
9.Exit
Enter your Choice: 9

相关文章