C++快速入门.ppt

  1. 1、本文档共1095页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C快速入门

a0 a1 an-1 an …… 队头 队尾 入队 出队 数组下标 0 1 n-1 n max (一般状态) …… 队头 队尾 入队 出队 数组下标 0 1 n-1 n max (队空状态) a0 a1 an-1 an amax …… 队头 队尾 入队 出队 数组下标 0 1 n-1 n max (队满状态) 元素移动方向 元素移动方向 循环队列 在想象中将数组弯曲成环形,元素出队时,后继元素不移动,每当队尾达到数组最后一个元素时,便再回到数组开头。 特殊的线性群体——队列 1 2 3 4 …… m-1 m-2 m-3 0 am am+1 am+2 a3 队头 队尾 a4 am-2 am-3 am-1 队满状态 元素个数=m 1 2 3 4 …… m-1 m-2 m-3 0 队尾 队头 队空状态 元素个数=0 队尾 1 2 3 4 …… m-1 m-2 m-3 0 a0 a1 a2 a3 队头 一般状态 例9-10 队列类模板 #ifndef QUEUE_CLASS #define QUEUE_CLASS #include iostream.h #include stdlib.h const int MaxQSize = 50; 特殊的线性群体——队列 template class T class Queue { private: int front, rear, count; T qlist[MaxQSize]; public: Queue (void); void QInsert(const T item); T QDelete(void); void ClearQueue(void); T QFront(void) const; int QLength(void) const; int QEmpty(void) const; int QFull(void) const; }; // 构造函数,初始化队头指针、队尾指针、元素个数 template class T QueueT::Queue (void) : front(0), rear(0), count(0) {} //向队尾插入元素(入队) template class T void QueueT::QInsert (const T item) { // 如果队满,中止程序 if (count == MaxQSize) { cerr Queue overflow! endl; exit(1); } // increment count, assign item to qlist and update rear count++; //元素个数增1 qlist[rear] = item; //向队尾插入元素 rear = (rear+1) % MaxQSize; //队尾指针增1,用取余运算实现循环队列 } // 删除队首元素,并返回该元素的值(出队) template class T T QueueT::QDelete(void) { T temp; // 如果队空,中止程序 if (count == 0) { cerr Deleting from an empty queue! endl; exit(1); } // 记录队首元素值 temp = qlist[front]; count--; // 元素个数自减 front = (front+1) % MaxQSize; //队首指针增1。取余以实现循环队列 return temp; //返回首元素值 } // 访问队列首元素(返回其值) template class T T QueueT::QFront(void) const {

文档评论(0)

yan698698 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档