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

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

hot3.png

//Queue.h#ifndef _QUEUE_H_struct QueueRecord;typedef struct QueueRecord *Queue;#define ElementType intstruct QueueRecord{	int Capacity;	int Front;	int Rear;	int Size;	ElementType *Array;};Queue CreateQueue(int MaxElements);int IsEmpty(Queue Q);int IsFull(Queue Q);void MakeEmpty(Queue Q);int Succ_Rear(int Value,Queue Q);void Enqueue(ElementType X, Queue Q);ElementType Front(Queue Q);ElementType FrontandDequeue(Queue Q);void DisposeQueue(Queue Q);void PrintQueue(Queue Q);#endif%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%//Queue.c #include
#include "Queue.h"#include
Queue CreateQueue(int MaxElements){ Queue Q; Q=malloc(sizeof(struct QueueRecord)); if(Q==NULL) { printf("Out of space!\n"); } Q->Array=malloc(sizeof(ElementType)*MaxElements); Q->Capacity=MaxElements; if(Q->Array==NULL) { printf("Out of space!\n"); } MakeEmpty(Q); return Q;}int IsEmpty(Queue Q){ return Q->Size==0;}int IsFull(Queue Q){ return Q->Size==Q->Capacity;}void MakeEmpty(Queue Q){ Q->Size=0; Q->Front=1; Q->Rear=0;}int Succ_Rear(int Value,Queue Q){ if((Value++)==Q->Capacity-1) { Value=0; } return Value;}void Enqueue(ElementType X, Queue Q){ if(IsFull(Q)) { printf("Out of space!\n"); } else { Q->Size++; Q->Rear=Succ_Rear((Q->Rear),Q); printf("Rear的值 %d\n",Q->Rear); Q->Array[Q->Rear]=X; }}ElementType Front(Queue Q){ if(!IsEmpty(Q)) { return Q->Array[Q->Front]; } printf("Empty queue!\n"); return 0;}ElementType FrontandDequeue(Queue Q){ ElementType temp=0; if(!IsEmpty(Q)) { Q->Size--; temp=Q->Array[Q->Front]; Q->Front--; return temp; } else { printf("Empty queue!\n"); return 0; }}void DisposeQueue(Queue Q){ if(IsEmpty(Q)) { printf("Out of space!\n"); } else { Q->Size--; Q->Front++; }} void PrintQueue(Queue Q){ int j,n; j=Q->Front; n=0; while(n!=Q->Size) { if((j/(Q->Capacity-1))==1) { printf("%d",Q->Array[(j%(Q->Capacity))]); n++; j++; } else { printf("%d",Q->Array[j]); n++; j++; } } }%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%//main.c #include
#include "Queue.h"int main(void){ Queue Q; Q=CreateQueue(10); int i; printf("请输入整数加入队列:\n"); int m; scanf("%d",&m); while(m!=99) { Enqueue(m,Q); printf(" 队列中: %d\n",Q->Array[Q->Rear]); printf("请输入整数加入队列:\n"); scanf("%d",&m); } PrintQueue(Q); return 0;}

 

转载于:https://my.oschina.net/u/3397950/blog/877210

你可能感兴趣的文章
使用jQuery Repeater设置多行垃圾邮件
查看>>
WSUS部署实验 Part1之服务安装
查看>>
使用XtraBackup恢复|备份 Mysql数据库 -- 数据恢复篇
查看>>
IPtables之二:基础规则编写
查看>>
几种流行的Ajax开发框架比较
查看>>
Flash互动网站设计学习-Flash发展历史
查看>>
Windows Phone 7 扩展TextBox控件为数字输入文本框
查看>>
UE不能复制粘贴了?
查看>>
DAVINCI DM3730开发攻略——DVSDK4_03和双核CODEC机制介绍
查看>>
Editlog与FileChannel Log的Group Commit
查看>>
MongoDB权威指南学习笔记03
查看>>
通用权限管理系统组件 (GPM - General Permissions Manager) 中实现高性能的ASP.NET管理页面自动生成...
查看>>
Linux系统工程师的必备素质
查看>>
DBA面试
查看>>
磁盘管理之使用mdadm创建软Raid 及raid验证
查看>>
[Unity3D插件]FingerGesture的简单实用
查看>>
HOWTO:如何配置 Windows Server 2008 允许被 Ping
查看>>
Internet Explorer 8 Released to Web
查看>>
Jerry的Fiori原创文章合集
查看>>
vlookup函数简单应用“合并计费”
查看>>