2015年国家电网考试备考:计算机之数据结构与算法(二)
2015年国家电网考试备考:计算机之数据结构与算法(二)
今天我们推荐的知识点是:电气工程类——计算机之数据结构与算法之队列、链表,详情请查看原文。关注华图网校国家电网考试频道,我们会第一时间发布国家电网考试信息!更多2015年国家电网备考资料,尽在国家电网考试频道(http://v.huatu.com/dianwang/)
3.队列 (Queue)
一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列是按照“先进先出”或“后进后出”的原则组织数据的。队列中没有元素时,称为空队列。
顺序队列
空队时指针(下标)front和rear在一起都指向队前方,当有元素进队,则rear后移;有元
素出队,则front后移,最后,开始时分配给队的前端不再被利用。
为了充分利用队列,顺序队列总是做成一个逻辑上的循环队列。
注意:空队时rear等于front,满队时必须空一个位置。
顺序循环队列类模板
templateclass Queue
{
int rear,front; //队尾与队头下标
T *elements; //存放队列元素的容器
int maxSize; //队列最多可容纳元素个数+1
public:
Queue(int ms=18);
~Queue()
{
delete[] elements;
}
bool IsEmpty() const //判队空
{
return front==rear;
}
bool IsFull() const //判队满
{
return (rear+1)%maxSize==front;
}
int Length() const //求队中元素数,注意求余算法
{
return (rear-front+maxSize)%maxSize;
}
void EnQue(const T &data); //进队
T DeQue(); //出队
T GetFront(); //取队头数据
void MakeEmpty()//队置空(初始态)
{
front=rear=0;
}
};