队列的链式存储相关操作
来源:互联网 发布:淘宝回收手机是真的吗 编辑:程序博客网 时间:2024/06/05 09:23
#include <stdio.h>#include <stdlib.h>enum s{QUEUE_EMPTY,QUEUE_NOEMPTY,IN_OK,OUT_OK,OUT_NO};struct node{int data;struct node *next;};struct Queue{struct node *front;struct node *rear;};void init_queue(struct Queue *s){s->front = NULL;s->rear = NULL;}int empty_queue(struct Queue *s){if(s->rear == NULL){printf("queue is empty!\n");return QUEUE_EMPTY;}return QUEUE_NOEMPTY;}int in_queue(struct Queue *s,int num){struct node *p = (struct node*)malloc(sizeof(struct node));if(p == NULL){printf("malloc fail!\n");return -1;}p->data = num;p->next = NULL;if(s->rear == NULL){s->front = p;s->rear = p;}else{s->rear->next = p;s->rear = p;return IN_OK;}}int out_queue(struct Queue *s,int *num){if(empty_queue(s) == QUEUE_EMPTY){return OUT_NO;}struct node *p = s->front;*num = p->data;//printf("%d",*num);s->front = p->next;if(s->front == NULL){s->rear = NULL;}free(p);p = NULL;return OUT_OK;}int main(){struct Queue *s = (struct Queue*)malloc(sizeof(struct Queue));int i = 0;int num = 0;init_queue(s);for(i = 0;i < 9;i++){in_queue(s,i+1);printf("第[%d]: %din queue\n",i+1,s->rear->data);}for(i = 0;i < 9;i++){if(empty_queue(s) != QUEUE_EMPTY){out_queue(s,&num);printf("%d\n",num);}else{printf("out error!\n");}}return 0;}
阅读全文
0 0
- 队列的链式存储相关操作
- 队列的链式存储操作
- 队列的链式存储结构与操作
- 队列的链式存储结构与操作
- 队列操作的实现-链式存储
- 堆栈的相关操作_链式存储
- 链式队列的存储....
- 队列的链式存储
- 队列的链式存储
- 队列的链式存储
- 队列的链式存储
- 队列的链式存储
- 队列的链式存储
- 队列的链式存储
- JAVA实现队列 队列的链式存储结构及操作
- 队列的链式存储的实现及操作
- 队列的基本操作(采用链式存储结构)
- 队列的定义与操作(链式存储)
- docker学习笔记(一)
- 一天一条shell知识------------反引号的应用``
- solr安装和基本应用
- 【Angular】——BootStrap+Swiper实现手机端滑动窗口
- Shell数组
- 队列的链式存储相关操作
- [LeetCode]Unique Paths
- 前端构建工具gulpjs的使用介绍及技巧
- POJ-3041
- angular ui-router 路由默认跳转语句$urlRouterProvider.otherwise(‘路径');与<a>共用时存在的问题
- 自定义文件系统类加载器
- 打印任一年日历
- 搜索专题 O
- Java实现贪吃蛇(三)