百度快照抓取的是网站哪里的内容,怎么把东西发布到网上卖,国外自适应网站模版,国家知识产权专利网官网队列的基本概念
队列的定义
队列(Queue)简称队#xff0c;也是一宗操作受限的线性表#xff0c;只允许在表的一段进行插入#xff0c;而在表的另一端进行删除。向队列中插入元素成为入队或进队#xff1b;删除元素成为出队或离队。
特性#xff1a;先进先出 (Fir…队列的基本概念
队列的定义
队列(Queue)简称队也是一宗操作受限的线性表只允许在表的一段进行插入而在表的另一端进行删除。向队列中插入元素成为入队或进队删除元素成为出队或离队。
特性先进先出 (First In First Out,FIFO)
队头(Front): 允许删除的一端也成为队首队尾(Rear):允许插入的一段空队列:不含任何元素的空表
队列常见的基本操作
InitQueue(Q):初始化队列构造一个空队列Q
QueueEmpty(Q) :判队列空若队列空返回true,否则返回false
EnQueue(Q,x) 入队若队列未满则将x加入
DeQueue(Q,x) 出队若队列非空删除队头元素并用x返回
GetHead(Q,x) 读队头元素若队列Q非空则将队头元素赋值给x
队列的顺序存储结构
#define MaxSize 10 //定义队列中元素的最大个数
typedef struct{ElemType data[MaxSize]; //用静态数组存放队列元素int front,rear; //队头指针和队尾指针
}SqQueue;
//初始化队列
void InitQueue(SqQueue Q){Q.rear Q.front 0;
}
//判断队列是否为空
bool QueueEmpty(SqQueue Q){if(Q.rear Q.front)return true;elsereturn false;
}
//入队
bool EnQueue(SqQueue Q,ElemType x){if((Q.rear1)%MaxSize Q.front) //判断队满的条件return false; //队列满报错Q.data[Q.rear] x; //将x插入队尾Q.rear (Q.rear1)%MaxSize;return true;
}
//出队
bool DeQueue(SqQueue Q,ElemType x){if(Q.rear Q.rear)return false; //队空报错xQ.data[Q.front]; Q.front(Q.front1)%MaxSize;return true;
}
//获得队头元素的值并用x返回
bool GetHead(SqQueue Q,ElemType x){if(Q.rear Q.front)return false; //队空报错xQ.data[Q.front];return true;
}Q.rear MaxSize不能作为队列满的条件
队列已满的条件 队尾指针的下一个位置是队头指针(Q.rear 1)%MaxSize Q.front
求队列元素的个数 (rear MaxSize-front)%MaxSize