队列是一种操作受限的线性表。队列的特点是先进先出(FIFO),队尾(rear)允许插入操作的一端,队首(front)允许删除操作的一端,新元素从队尾进,队首出,所以说,它是先进先出的一种线性表。
队列有链队列和顺序队列两种。
链队列不会出现队满这种现象,而顺序队列会发生队满现象。这于他们的存储方式有关。
下面我先用图来,简单介绍链队列和顺序队列,然后给大家相关代码,方便大家明白它的使用方式。
1,对于顺序队列,置队空Q.front = Q.rear = -1.
队列中的元素个数 m = MAXSIZE(后面程序有具体定义);
队满条件:m = MAXSIZE;,
2,循环队列的实现,即尾指针到达最后单元时,又回到头元素的位置。
循环队列入队时,尾指针加1的操作:Q.rear = (Q.rear+1)%MAXSIZE;
出队时,队头指针加1的操作则为:Q.front = (Q.front+1)%MAXSIZE;
队列长度为:length = (Q.rear-Q.front+MAXSIZE)%MAXSIZE;
下面先介绍链队列的相关操作,程序如下: