当前位置:   article > 正文

C++——数据结构stack,queue,priority_queue

C++——数据结构stack,queue,priority_queue

栈的底层与使用

1.堆栈是计算机科学中的一种抽象数据类型,只允许在有序的线性数据集合的一端(称为堆栈顶端,top)进行插入数据(PUSH)和删除数据(POP)的运算。

2.特点:stack是一种容器适配器   支持后进先出  无迭代器

3.stack的底层容器需要支持如下操作:

  1. empty(判空)
  2. size(返回有效数据个数)
  3. push(队尾插入)
  4. pop (队尾删除)
  5. top(返回对头元素)

4.stack的底层可以是vector , list , deque(双端队列),默然情况是deque

底层实现:

  1. namespace bit
  2. {
  3. template< typename T, typename Container = deque<T> >// 适配器模式 + 类模版
  4. class stack
  5. {
  6. public:
  7. void push(const T& x)
  8. {
  9. _com.push_back(x);
  10. }
  11. bool empty()
  12. {
  13. return _com.empty();
  14. }
  15. void pop()
  16. {
  17. _com.pop_back();
  18. }
  19. size_t size()
  20. {
  21. return _com.size();
  22. }
  23. T& top()
  24. {
  25. return _com.back();
  26. }
  27. private:
  28. Container _com;
  29. };
  30. }

队列的底层与使用

1.队列是一种容器适配器,专门适用于先进先出操作,从一段提取元素,一端插入元素

2.队列的底层容器需要支持以下操作

  1. size
  2. empty
  3. push
  4. pop
  5. front
  6. back

3.queue的底层可以是list , deque ,默然情况是deque

底层实现:

  1. template< typename T, typename Container = deque<T> >
  2. class queue
  3. {
  4. public:
  5. void push(const T& x)
  6. {
  7. _com.push_back(x);
  8. }
  9. bool empty()
  10. {
  11. return _com.empty();
  12. }
  13. void pop()
  14. {
  15. _com.pop_back();
  16. }
  17. size_t size()
  18. {
  19. return _com.size();
  20. }
  21. T& top()
  22. {
  23. return _com.back();
  24. }
  25. private:
  26. Container _com;
  27. };

优先级队列

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号