⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 circular-q.cc

📁 运行于linux上的CIMS套件
💻 CC
字号:
#include "circular-q.h"CQueue::CQueue()//Default constructor{  MaxQueue = 50; //Default Size  NumItems = 0;  Front = 0;  Rear = MaxQueue - 1;}CQueue::CQueue(int QueueSize)//Default constructor{  MaxQueue = QueueSize;  NumItems = 0;  Front = 0;  Rear = MaxQueue - 1;}void CQueue::Insert(double ts, Packet *pkt, int *Success)//Inserts El in a queue.//Pre : The queue has been created.//Post: If the queue is not full, increments Rear and inserts El.//      Sets Success to indicate success or failure.{  if (NumItems == MaxQueue)    *Success = False;                   //queue is full  else  {    Rear = (Rear + 1) % MaxQueue;      //increment rear    Items[Rear] = pkt;    t[Rear] = ts;    NumItems = NumItems + 1;    *Success = True;  }}void CQueue::Remove(double *ts, Packet **pkt, int *Success)//Removes element at front of queue and copies it to El.//Pre : The queue has been created.//Post:  If the queue is not empty, El contains its first//       element, Front is decremented, and Success is True;//       otherwise Success is False.{  if (NumItems == 0)    *Success = False;                      //queue is empty  else  {    //Remove the element at the front of the queue    *pkt = Items[Front];    *ts = t[Front];    Front = (Front + 1) % MaxQueue;       //increment Front    NumItems = NumItems - 1;    *Success = True;  }}void CQueue::Retrieve(double *ts, Packet **pkt, int *Success)//Copies value at front of queue to El without removing it.//Pre : The queue has been created.//Post: If the queue is not empty, El contains its first element//      and Success is True; otherwise Success is False.{   if (NumItems == 0)     *Success = False;    //queue is empty   else   {     //Retrieve item at front of queue     *pkt = Items[Front];     *ts = t[Front];     *Success = True;   }}int CQueue::IsEmpty()//Test for empty queue.//Pre : Queue has been created.//Post: Returns True (1) if queue is empty and//      False (0) otherwise.{  return (NumItems == 0);}int CQueue::IsFull()//Test for full queue.//Pre : Queue has been created.//Post: Returns True (1) if queue is full and//      False (0) otherwise.{  return (NumItems == MaxQueue);}int CQueue::SizeOfQueue()//Returns number of elements in queue.{  return NumItems;}int CQueue::SizeofMaxQueue(){  return MaxQueue;}double CQueue::TimeLimit(){  return time_limit;}void CQueue::SetTimeLimit(double tl){  time_limit = tl;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -