*****************************************************/
int main(int argc, char* argv)
{
struct queueLK q;
int a = {3, 8, 5, 17, 9, 30, 15, 22};
int i;
initQueue( &q);
for(i = 0; i < 8; i++){
enQueue( &q, a[i]);
}
printf( "%d ", outQueue(&q)); printf("%d ", outQueue(&q));
enQueue( &q, 68);
printf( "%d ", peekQueue(&q)); printf("%d ", outQueue(&q));
while(!emptyQueue( &q)){
printf( "%d ", outQueue(&q));
}
printf( " ");
clearQueue( &q);
system( "pause");
}#include <stdio.h>
#include <stdlib.h>
typedef int elemType;
/************************************************************************/
/* 以下是关于队列顺序存储操作的6种算法 */
/************************************************************************/
struct queue{
elemType *queue; /* 指向存储队列的数组空间 */
int front, rear, len; /* 队首指针(下标),队尾指针(下标),队列长度变量 */
int maxSize; /* queue数组长度 */
};
void againMalloc(struct queue *q)
{
/* 空间扩展为原来的2倍,原内容被自动拷贝到p所指向的存储空间中 */
elemType *p;
p = realloc(q- >queue, 2 * q->maxSize * sizeof(elemType));
/* 动态存储空间分配,若失败则退出运行 */
if(!p){
printf( "空间分配失败! ");
exit(1);
}
q- >queue = p; /* 使queue指向新的队列空间 */
/* 把原队列的尾部内容后移maxSize个位置 */
&n