数组实现循环队列
来源:互联网 发布:讨鬼传极捏脸数据 编辑:程序博客网 时间:2024/05/22 10:59
1 动态数组类型typedef struct QNode {int size;int front, rear;int *data;// 等待确定大小}Queue;(1)分配结构体内存与数组内存Queue* initialize1(){Queue* q;q = (Queue*)malloc(sizeof(Queue));// 不能加这个 切记q->data = (int*)malloc(sizeof(int)*MaxSize);q->size = 0;q->rear = 0;q->front = 0;return q;}\\相应main函数int main(){Queue *q;q = initialize1(); return 0;}(2)只分配数组内存不分配结构内存int initialize2(Queue* q){//q = (Queue*)malloc(sizeof(Queue)); // 切记 不可再次申请空间 q->data = (int*)malloc(sizeof(int)*MaxSize);q->front = q->rear = 0;q->size = 0;return 1;} \\相应main函数int main(){Queue q;initialize2(&q);return 0;}2 静态数组类型 结构内存与数组内存都不分配typedef struct QNode {int size;int front, rear;int data[MaxSize];}Queue;int initialize3(Queue* q){q->front = q->rear = 0;q->size = 0;return 1;}//相应main函数int main(){Queue q;initialize3(&q);return 0;}
数组是否是动态数组 是(需要申请数组空间)否(不申请数组空间)
main中 创建的是指针还是 结构本身 即 Queue *q(需要申请结构内存) OR Queue q(不需要申请结构内存);
其中一种的完整代码实现
#include<stdlib.h>#include<stdio.h>#define MaxSize 10 //循环队列 最大容量为 MaxSize-1;typedef struct QNode {int size;int front, rear;int data[MaxSize];}Queue;int initialize(Queue *q){//q = (Queue*)malloc(sizeof(Queue));// 不能加这个 切记q->size = 0;q->rear = 0;q->front = 0;return 1;}int is_full(Queue q){return (q.rear + 1) % MaxSize == q.front;}int is_empty(Queue q){return q.front == q.rear;}void enqueue(int x, Queue *q){if (!is_full(*q)) {q->data[q->rear] = x;q->rear = (q->rear + 1) % MaxSize;q->size++;}}void dequeue(Queue *q){if (!is_empty(*q)) {q->front = (q->front + 1) % MaxSize;q->size--;}}int get_front(Queue q){if (!is_empty(q)) {printf("q.front = %d", q.front);return q.data[q.front];}}void print_queue(Queue q){int i;for (i = q.front; i < q.front+q.size; i++) {printf("%d ", q.data[i%MaxSize]);}}int main(){Queue q;//已经 完整的创建了 结构体 初始化不能再申请空间了initialize(&q);print_queue(q);int x;scanf("%d", &x);while (x != -1) {enqueue(x, &q);scanf("%d", &x);}dequeue(&q);enqueue(8, &q);dequeue(&q);enqueue(10,&q);print_queue(q);getchar();getchar();}
阅读全文
1 0
- 数组实现循环队列
- 数组实现循环队列
- 循环数组实现队列
- 循环队列--数组实现
- 数组实现循环队列
- 数组实现循环队列
- 数组实现循环队列
- 队列----循环数组实现队列
- 用循环数组实现队列
- Java数组实现循环队列
- 用数组实现循环队列
- 静态数组实现循环队列
- 动态数组实现循环队列
- 循环队列的数组实现
- 静态数组实现循环队列
- 动态数组实现循环队列
- 循环队列—数组实现
- C 数组实现 循环队列
- javascript 获取日期不足两位补 0
- 对实体类的CRUD操作
- [绍棠_Swift] Swift3.0中的Alamofire网络请求的封装
- 深度学习在语音识别中的声学模型以及语言模型的应用
- 程序中出现的.dll .lib .def 和 .exp文件
- 数组实现循环队列
- Okhttp3源码(2)---CacheInterceptor解析
- 模仿QQ背景为视频的登录页
- 开篇序(必看)
- Epii.js 一个极其简单的Js模板引擎
- 链表
- SpringBoot用JdbcTemplates访问Mysql
- Chrome 程序 Postman的使用
- 集成shiro后,登录页面样式不能正常显示问题