队列的基本操作
来源:互联网 发布:mac dns污染怎么解决 编辑:程序博客网 时间:2024/04/25 06:22
#include<stdio.h>#define MAXSIZE 5typedef struct {int data[MAXSIZE];int front;int rear;}Queue;void QueueInit(Queue *Q){Q->front=0;Q->rear=0;}bool IsQueueEmpty(Queue *Q){return Q->front==Q->rear;}bool IsQueueFull(Queue *Q){return (Q->rear+1)%MAXSIZE==Q->front;}void EnQueue(Queue *Q,int data){ if(IsQueueFull(Q)){printf("队列已满!!!\n");return ;}Q->data[Q->rear]=data;Q->rear=(Q->rear+1)%MAXSIZE;}void DeQueue(Queue *Q){if(IsQueueEmpty(Q)){printf("栈已空无法删除!!!\n");return;}Q->front=(Q->front+1)%MAXSIZE;}int QueueLen(Queue *Q){return (Q->rear - Q->front + MAXSIZE)%MAXSIZE;}void ShowQueue(Queue *Q){if(IsQueueEmpty(Q)){printf("队列空!!!\n");return ;}int len=QueueLen(Q);for(int i=0;i<len;i++){printf("%d ",Q->data[(Q->front+i)%MAXSIZE]);}printf("\n");}void main(){Queue qu;QueueInit(&qu); EnQueue(&qu,1);EnQueue(&qu,2);EnQueue(&qu,3);EnQueue(&qu,4);EnQueue(&qu,5);EnQueue(&qu,8); ShowQueue(&qu); DeQueue(&qu);DeQueue(&qu);DeQueue(&qu);ShowQueue(&qu);EnQueue(&qu,5);EnQueue(&qu,8);ShowQueue(&qu);}/*#include<iostream.h>#include<stdlib.h>/////////////////队列的顺序存储///////////////////#define MAXSIZE 5typedef int Type;typedef struct{ Type data[MAXSIZE]; int front; int rear;}SqQueue;////////////初始化空队列///////////////void InitQueue(SqQueue **p){ (*p)=(SqQueue *)malloc(sizeof(SqQueue)); (*p)->front=0; (*p)->rear=0;}int QueueLength(SqQueue *p){ int num=((p->rear)-(p->front)+MAXSIZE)%MAXSIZE; return num;}bool EnQueue(SqQueue *p,Type x)//入队列{ if((p->rear+1)%MAXSIZE==p->front) return false; else { p->data[p->rear]=x; p->rear=(p->rear+1)%MAXSIZE; } return true;}bool DeQueue(SqQueue *p,Type *x) //带出出队列的数据{if(p->rear==p->front){return false;} else{ (*x)=p->data[p->front]; p->front=(p->front+1)%MAXSIZE;}return true;}void show(SqQueue *p){ for(int i=p->front;i!=p->rear;(++i)%MAXSIZE) { cout<<p->data[i]<<" "; } cout<<endl;}void main(){ SqQueue *p=NULL; InitQueue(&p); EnQueue(p,10); EnQueue(p,6);EnQueue(p,3);EnQueue(p,5);EnQueue(p,8); show(p);}*/
0 0
- 队列的基本操作
- 队列的基本操作
- 队列的基本操作
- 队列的基本操作!
- 队列的基本操作
- 队列的基本操作
- 队列的基本操作
- 队列的基本操作
- 队列的基本操作
- 队列的基本操作
- 队列的基本操作
- 队列的基本操作
- 队列的基本操作
- 队列的基本操作
- 队列的基本操作
- 队列的基本操作
- 队列的基本操作
- 队列的基本操作
- Weka算法Classifier-tree-J48源码分析(三)ModelSelection
- leetCode:Pascal's Triangle II
- 栈的基本操作
- Windows PE文件导入函数查看器(C++/C)
- Leetcode 模拟 Count and Say
- 队列的基本操作
- .NET开发者必备的11款免费工具
- Eclipse:Failed to load the JNI shared library 解决方法
- 第一次开通csdn的博客
- HTTP协议详解
- 串的基本操作
- android 视频录制
- [Lua]用__index/__newindex来限制访问
- Linux的异步IO