zoukankan      html  css  js  c++  java
  • 顺序存储队列操作

    //顺序存储队列 
    #include <stdio.h>
    
    #define MaxSize 6
    
    typedef struct{
    	int data[MaxSize];
    	int front,rear;
    }SqQueue;
    
    void InitQueue(SqQueue *);		//初始化队列 
    void QueueEmpty(SqQueue); 		//判断队列是否为空
    void QueueFull(SqQueue);		//判断队列是否为满 
    void EnQueue(SqQueue * , int);	//入队 
    int * DeQueue(SqQueue * , int *);	//出队 
    int * GetHead(SqQueue , int *);		//获取队头数据 
    
    int main(void){
    	SqQueue Q;
    	InitQueue(&Q);
    	EnQueue(&Q,1);
    	EnQueue(&Q,2);
    	EnQueue(&Q,3);
    	EnQueue(&Q,4);
    	EnQueue(&Q,5);
    	EnQueue(&Q,6);
    	
    	int e = 0;
    	DeQueue(&Q,&e);
    	printf("出队的数据为:%d
    ",e);
    	DeQueue(&Q,&e);
    	printf("出队的数据为:%d
    ",e);
    	
    	GetHead(Q,&e);
    	printf("当前队头的数据为:%d
    ",e);
    	return 0;
    }
    
    //初始化队列 
    void InitQueue(SqQueue *q){
    	q->front = q->rear = 0;
    }
    
    //判断队列是否为空 
    void QueueEmpty(SqQueue q){
    	if(q.front == q.rear){
    		printf("队列为空!
    ");
    	}else{
    		printf("队列不为空!
    ");
    	} 
    }
    
    ///判断队列是否为满
    void QueueFull(SqQueue q){
    	if((q.rear+1) % MaxSize == q.front){
    		printf("队列已满!
    ");
    	}else{
    		printf("队列未满!
    ");
    	}
    } 
    
    //入队
    void EnQueue(SqQueue *q , int e){
    	if((q->rear+1) % MaxSize == q->front){
    		printf("队列已满!
    ");
    	}else{
    		q->data[q->rear] = e;
    		printf("%d入队
    ",e);
    		q->rear = (q->rear+1) % MaxSize;
    	}
    }
    
    //出队
    int * DeQueue(SqQueue *q , int *e){
    	if(q->rear == q->front){
    		printf("队列为空!
    ");
    	}else{
    		(*e) = q->data[q->front];
    		q->front = (q->front + 1) % MaxSize; 
    	}
    	return e;
    }
    
    //获取队头数据
    int * GetHead(SqQueue q , int *e){
    	if(q.front == q.rear){
    		printf("队列为空!
    ");
    	}else{
    		(*e) = q.data[q.front]; 
    	}
    	return e;
    }
    
  • 相关阅读:
    二分
    枚举
    dp
    bfs
    bfs
    dfs
    ipython快捷键
    虚拟机串口连接嵌入式开发板
    rtmp向IR601移植过程(无功能步骤,只有移植步骤)
    静态库和动态库
  • 原文地址:https://www.cnblogs.com/Timesi/p/12462492.html
Copyright © 2011-2022 走看看