Page 83 - 高中 信息技术 选择性必修1 数据与数据结构
P. 83
3.3 用队列组织先进先出数据
顺序队列的操作可用如表3-5所示的程序代码实现。
表3-5 顺序队列的操作代码
功能 程序段
void Init_Queue(Queue &q)
初始化队列:
{
队头标志和队尾标志均为0,这时队列为
q.front=q.rear=0;
空,没有元素。
}
bool IsEmpty_Queue(Queue &q)
判断队列是否为空: {
当front=rear时,队列为空,返回true,否 if(q.front==q.rear) return true;
则返回false。 else return false;
}
bool IsFull_Queue(Queue &q)
判断队列是否为满: {
当rear=maxsize时,队列为满,返回true, if(q.rear==maxsize) return true;
否则返回false。 else return false;
}
void In_Queue(Queue &q,string x)
{
if(!IsFull_Queue(q))
入队操作: 广东教育出版社
{
如果队列非满,则将元素x放入队尾标志
q.items[q.rear]=x;
rear所指位置,然后rear指向下一个位置。 q.rear=q.rear+1;
}
}
string Out_Queue(Queue &q)
{
if(IsEmpty_Queue(q))
{
return NULL;
出队操作: }
如果队列为空,返回空元素(NULL), else
否则返回队头标志front所指的元素,然后 {
front指向下一个位置。 string retvalue;
retvalue=q.items[q.front];
q.front=q.front+1;
return retvalue;
}
}
int Size_Queue(Queue &q)
{
取当前队列长度。
return q.rear-q.front;
}
75 75
21X2204.indd 75 2019/9/26 13:53:17