Linux下的C语言编程——队列
来源:互联网 发布:cad软件购买 编辑:程序博客网 时间:2024/04/30 07:25
队列基本功能的实现
#include <stdio.h>#include <stdlib.h>#define MAX 10struct queue_data{int queue[MAX];int top;int buttom;};typedef struct queue_data Queue;typedef struct queue_data *Data;void creat_queue(Data *queue){*queue = (Data)malloc(sizeof(Queue));if(!(*queue)){printf("malloc error!\n");exit(-1);}}void init_queue(Data queue){queue->top = -1;queue->buttom = -1;}int is_full(Data *queue){if((*queue)->buttom == -1){if((*queue)->top == MAX - 1){return 1;}else{return 0;}}else{if(((*queue)->top - (*queue)->buttom) + 1 == MAX){return 1;}else{return 0;}}}int push_queue(Data *queue,int num){int i;if(is_full(queue)){printf("the queue is full!\n");exit(0);}else{if((*queue)->top < MAX - 1)//<MAX - 1涓轰簡闃叉top = max,瓒呭嚭queue[i]鐨勮寖鍥?{((*queue)->top)++;((*queue)->queue[(*queue)->top]) = num;}else{for(i = (*queue)->buttom; i <= (*queue)->top; i++){(*queue)->queue[i - (*queue)->buttom] = (*queue)->queue[i];}(*queue)->top = (*queue)->top - (*queue)->buttom - 1;(*queue)->buttom = 0;((*queue)->top)++;((*queue)->queue[(*queue)->top]) = num;}return 1;}}int is_empty(Data *queue){if((*queue)->top <= (*queue)->buttom){return 1;}else{return 0;}}int pop_queue(Data *queue){if(is_empty(queue)){printf("the queue is empty!\n");exit(0);}else{return((*queue)->queue[++((*queue)->buttom)]);}}void get_queue(Data * queue){if(is_empty(queue)){printf("the queue is empty!\n");return ;}else{while((*queue)->buttom < (*queue)->top){((*queue)->buttom)++;printf("queue = %d\n",(*queue)->queue[(*queue)->buttom]);}}}int main(){Data queue;creat_queue(&queue);init_queue(queue);int i;for(i = 0; i < MAX; i++){if(push_queue(&queue,i + 1)){printf("push num\t%d\n",i+1);}}for(i = 0; i < MAX; i++){printf("pop num:\t%d\n",pop_queue(&queue));}get_queue(&queue); return 0;}
0 0
- Linux下的C语言编程——队列
- Linux下的C语言编程——信号队列
- Linux下的C语言编程——链表实现队列操作
- Linux下的C语言编程——字符串排序
- Linux下的C语言编程——
- Linux下的C语言编程——位运算
- Linux下的C语言编程——合法帧
- Linux下的C语言编程——栈操作
- Linux下的C语言编程——文件操作
- Linux下C语言编程的注意事项
- Linux下的C语言编程基础
- Linux下C语言编程的注意事项
- Linux下C语言编程的注意事项
- Linux下的C语言多线程编程
- Linux下的C语言多线程编程
- Linux下的C语言编程
- linux下的C语言编程注意事项
- Linux系统下的c语言编程
- 大话-从市场需求->芯片设计->SDK开发->Turnkey方案->定制化产品 --- 芯片设计(二)
- 图片缓存器 需要volley
- LeetCOde217详细分析并附求解代码
- 深度学习库Theano导入mnist数据库
- 编译spark源码步骤
- Linux下的C语言编程——队列
- python基础知识——正则表达式,
- 分页和二级联动
- phpcms使用中遇到的问题
- 错误:Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
- C语言中 交换俩变量值得多种方法
- 查看当前网络是否可用
- UML学习推荐网站
- 【JZOJ4868】【NOIP2016提高A组集训第9场11.7】Simple