顺序队列
来源:互联网 发布:网络励志名言 编辑:程序博客网 时间:2024/05/01 19:01
#include "stdio.h"#include <malloc.h>#define MAXSIZE 10typedef int ElemType;typedef struct Node{ int front,rear; ElemType elem[MAXSIZE];}SqQueue;SqQueue * InitQueue(){ SqQueue *q; q=(SqQueue *)malloc(sizeof(SqQueue)); if(q==NULL){ printf("初始化内存失败!"); return NULL; }else{ q->front=q->rear=0; return q; }}int QueueLength(SqQueue *q){ return (q->rear-q->front+MAXSIZE)%MAXSIZE;}int enQueue(SqQueue *q,ElemType e){ if ((q->rear+1)%MAXSIZE==q->front){ return 0; } q->rear = (q->rear+1) % MAXSIZE; q->elem[q->rear]=e; return 1;}int deQueue(SqQueue *q){ if(q->front==q->rear){ return 0; }else{ q->front = (q->front+1)% MAXSIZE; return q->elem[q->front]; }}void ClearQueue(SqQueue *q){ free(q);}int QueueEmpty(SqQueue *q){ return q->front ==q->rear;}main(){ int i=0; SqQueue *q; q=InitQueue(); printf("进队列的顺序为:\n"); for(i;i<10;i++){ printf("%d\t",i+1); if(enQueue(q,i+1)==0){ printf("队满不能进队列!"); } } printf("\n"); printf("队列的长度顺序为:%d\t",QueueLength(q)); printf("\n"); printf("出队的顺序为:\n"); printf("%d\t",deQueue(q)); printf("%d\t",deQueue(q)); printf("%d\t",deQueue(q)); printf("%d\t",deQueue(q)); printf("%d\t",deQueue(q)); printf("%d\t",deQueue(q)); printf("%d\t",deQueue(q)); printf("%d\t",deQueue(q)); printf("%d\t",deQueue(q)); printf("%dyy\t",deQueue(q)); printf("hh%d\t",deQueue(q)); printf("\n"); if(QueueEmpty(q)){ printf("队列已经空\n"); } printf("\n"); printf("释放队列\n"); ClearQueue(q);}
0 0
- 顺序队列
- 顺序队列
- 顺序队列
- 顺序队列
- 顺序队列
- 顺序队列
- 顺序队列
- 顺序队列
- 顺序队列
- 顺序队列
- 顺序队列
- 顺序队列
- 顺序队列
- 顺序队列
- 顺序队列
- 顺序队列
- 顺序队列
- 顺序队列
- HTML移动开发跨域访问
- Java第三周-Date类的使用
- js小案例
- 项目使用的 safe.cs 帮助类
- Web安全之Cookie管理
- 顺序队列
- 设计模式之工厂模式
- 去除ListView默认点击背景,去除LietView滚动条
- Java第三周-Double与String类型变量相互转换
- Jquery取得iframe中元素的几种方法Javascript Jquery获取Iframe的元素、内容或者ID,反之也行!
- Java常见报错解决办法
- 快排算法精解
- 百度2015简答题
- 总结X