1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > C语言 数据结构 线性循环队列 基本操作代码

C语言 数据结构 线性循环队列 基本操作代码

时间:2020-11-28 11:14:05

相关推荐

C语言 数据结构 线性循环队列 基本操作代码

//// Created by Polaris on /4/27.//#include <stdio.h>#include <stdlib.h>#define DataType int#define MAXSIZE 100/** 线性循环队列定义*/typedef struct {DataType *data;int front;int rear;int size;}LinearCircularQueue;/** 初始化线性循环队列*/LinearCircularQueue* initQueue(int size) {LinearCircularQueue *queue = (LinearCircularQueue*) malloc(sizeof(LinearCircularQueue));queue -> data = (int*)malloc(sizeof(int)*size);queue -> front = 0;queue -> rear = 0;queue -> size = size;}int getSize(LinearCircularQueue *queue) {if(queue == NULL) {return -1;}return queue -> size;}int isEmpty(LinearCircularQueue *queue) {if(queue == NULL) {return -1;}return queue -> front == queue -> rear ? 1 : 0;}int isFull(LinearCircularQueue *queue) {if(queue == NULL) {return -1;}return (queue -> rear + 1) % (queue -> size) == queue -> front ? 1 : 0;}int push(LinearCircularQueue *queue, DataType data) {if(isFull(queue)) {return -1;}queue -> data[queue -> rear] = data;queue -> rear = (queue -> rear + 1) % (queue -> size);return 1;}DataType pop(LinearCircularQueue *queue) {if(isEmpty(queue)) {return -1;}DataType data = queue -> data[queue -> front];queue -> front = (queue -> front + 1) % (queue -> size);return data;}DataType getFront(LinearCircularQueue *queue) {return queue -> data[queue -> front];}DataType getRear(LinearCircularQueue *queue) {return queue -> data[queue -> rear];}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。