日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

【C++算法与数据结构学习笔记------用循环数组实现队列】

發布時間:2025/7/14 c/c++ 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【C++算法与数据结构学习笔记------用循环数组实现队列】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

照王曉東《數據結構》(C++語言版)上打的,以備留用。

1 #include <iostream> 2 using namespace std; 3 template<typename T> 4 class Queue{ 5 public: 6 Queue(int max=10000); 7 ~Queue(){delete [] que;} 8 bool empty()const {return que_front==que_rear;} 9 bool full()const {return (((que_rear+1)%max_size==que_front)?1:0);} 10 int size()const {return ((que_rear >que_front)?que_rear-que_front:que_rear-que_front+max_size);} 11 T front()const {return que[(que_front+1)%max_size];} 12 T back()const {return que[que_rear];} 13 Queue<T>& push(const T& x); 14 Queue<T>& pop(T& x); 15 private: 16 int que_front;//隊首游標 17 int que_rear; //隊尾游標 18 int max_size; //循環數組大小 19 T *que; //隊列元素 20 }; 21 template <typename T> 22 Queue<T>::Queue(int max) 23 { 24 max_size=max+1;//采用滿足max_size-1時full=true的方法。 25 que=new T[max_size]; 26 que_front=que_rear=0; 27 } 28 template <typename T> 29 Queue<T>& Queue<T>::push(const T& x) 30 { 31 if (full()) return *this; 32 que_rear=(que_rear+1)%max_size; 33 que[que_rear]=x; 34 return *this; 35 } 36 template <typename T> 37 Queue<T>& Queue<T>::pop(T& x) 38 { 39 if (empty()) return *this; 40 que_front=(que_front+1)%max_size; 41 x=que[que_front]; 42 return *this; 43 }

?

轉載于:https://www.cnblogs.com/EnCaL/archive/2012/05/08/2490887.html

總結

以上是生活随笔為你收集整理的【C++算法与数据结构学习笔记------用循环数组实现队列】的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。