11顺序队列假溢出


```c
/*
姓名:高万禄
日期:2020/1/27
名称:顺序队列假溢出
*/
#include<stdlib.h>
#include<stdio.h>
struct SqQueue{
	int *base;//空间基地址
	int front,rear; 
};
#define SIZE 5
typedef int datatype;
int main(void)
{
	struct SqQueue Q;
	Q.base=(int *)malloc(SIZE*sizeof(datatype));
	if(Q.base==NULL)
	return 0;
	Q.rear=0;
	Q.front=Q.rear;
	/////////////////////////////////
	//进队 
	printf("进队\n");
	while(1)
	{
		if(1!=scanf("%d",(Q.base+Q.rear)))
		{
			break;
		}
		getchar();
		Q.rear++;
		if(Q.rear==SIZE)// Q.rear超过允许最大值5,这种情况成为“假溢出” 
		break;
	}
	//////////////////////////////////
	//出队
	printf("出队\n");
	while(1)
	{
	printf("%d\n",*(Q.base+Q.front));
	Q.front++;
	if(Q.front==Q.rear)
	break;	
	}
	return 0; 
}

发布了25 篇原创文章 · 获赞 0 · 访问量 85

猜你喜欢

转载自blog.csdn.net/qq_45812941/article/details/104413522