📄 circular-q.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 + -