博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
队列——阵列实现
阅读量:5119 次
发布时间:2019-06-13

本文共 1222 字,大约阅读时间需要 4 分钟。

简介:

       队列的实现除了链表外。也可用数组实现。

分析描写叙述:

      队列的结构:

typedef int ElementType;typedef struct QueueRecord{	int Capacity;	int Front;	int Rear;	int Size;	ElementType *Array;}QueueRecord, *Queue;
       创建队列:

void MakeEmpty(Queue Q){	Q->Size  = 0;	Q->Front = 1;	Q->Rear  = 0;}Queue CreateQueue(int MaxElements){	Queue QueueHead  = (Queue)malloc(sizeof(struct QueueRecord));	if(QueueHead == NULL){		fprintf(stderr, "out of sapce .\n");		exit(0);	}	QueueHead->Array = (ElementType *)malloc(sizeof(ElementType)*MaxElements);	if(QueueHead->Array == NULL){		fprintf(stderr, "Out of sapce .\n");		}	QueueHead->Capacity  = MaxElements;	MakeEmpty(QueueHead);	return QueueHead;}
       推断队列为空或队列已满:

int IsEmpty(Queue Q){	return Q->Size == 0;}int IsFull(Queue Q){	return Q->Size == Q->Capacity;}
       入队列:

static intSucc(int Value, Queue Q){	if(++Value == Q->Capacity)			Value = 0;	return Value;}void Enqueue(ElementType data, Queue Q){	if(IsFull(Q))		fprintf(stderr, "full queue.\n");	else{		Q->Size++;		Q->Rear = Su(Q->Rear, Q);			Q->Array[Q->Rear] = X;	}		}
        出队列:

void Dequeue(Queue Q){	if(IsEmpty(Q))		fprintf(stderr, "Empty queue.\n");	else{		Q->Size--;		Q->Front = Succ(Q->Front, Q);		}}

版权声明:本文博主原创文章。博客,未经同意不得转载。

转载于:https://www.cnblogs.com/zfyouxi/p/4810161.html

你可能感兴趣的文章
"远程桌面连接--“发生身份验证错误。要求的函数不受支持
查看>>
【BZOJ1565】 植物大战僵尸
查看>>
VALSE2019总结(4)-主题报告
查看>>
浅谈 unix, linux, ios, android 区别和联系
查看>>
51nod 1428 活动安排问题 (贪心+优先队列)
查看>>
中国烧鹅系列:利用烧鹅自动执行SD卡上的自定义程序(含视频)
查看>>
Solaris11修改主机名
查看>>
latex for wordpress(一)
查看>>
如何在maven工程中加载oracle驱动
查看>>
Flask 系列之 SQLAlchemy
查看>>
aboutMe
查看>>
【Debug】IAR在线调试时报错,Warning: Stack pointer is setup to incorrect alignmentStack,芯片使用STM32F103ZET6...
查看>>
一句话说清分布式锁,进程锁,线程锁
查看>>
python常用函数
查看>>
FastDFS使用
查看>>
服务器解析请求的基本原理
查看>>
[HDU3683 Gomoku]
查看>>
【工具相关】iOS-Reveal的使用
查看>>
数据库3
查看>>
存储分类
查看>>