zoukankan      html  css  js  c++  java
  • 顺序队列

    #include <stdio.h>
    #include <malloc.h>
    typedef enum 
    {
        false, true        
    } bool;
    typedef struct Queue{
    	int *pBase;
    	int front;
    	int rear;
    }QUEUE; 
    
    void init(QUEUE *);
    bool en_queue(QUEUE *,int val);
    void traverse(QUEUE *);
    bool full_queue(QUEUE *);
    bool out_queue(QUEUE *,int *pVal);
    bool empty_queue(QUEUE *);
    
     
    int main(void){
    	QUEUE Q;
    	int val;
    	
    	init(&Q);
    	en_queue(&Q,1);
    	en_queue(&Q,3);
    	en_queue(&Q,2);
    	en_queue(&Q,4);
    	en_queue(&Q,5);
    	en_queue(&Q,6);
    	
    	traverse(&Q);
    	
    	if(out_queue(&Q,&val))
    	{
    		printf("出队成功,出队的元素是%d
    ",val);
    	}
    	else{
    		printf("出队失败");
    	}
    	traverse(&Q);
    	
    	return 0;
    	
    } 
    void init(QUEUE *pQ)//队列初始化
    {
    	pQ->pBase=(int *)malloc(sizeof(int) *6);
    	pQ->front=0;
    	pQ->rear=0;
    	
    	return ;
    }
    
    bool en_queue(QUEUE *pQ,int val)//入队
    {
    	if(full_queue(pQ)){
    		return false;
    	}
    	else
    	{
    		pQ->pBase[pQ->rear]=val;
    		pQ->rear=(pQ->rear+1)%6;
    		
    		return true;
    	}
    }
    void traverse(QUEUE *pQ){//遍历队列
    	int i=pQ->front;
    	while(i!=pQ->rear)
    	{
    		printf("%d",pQ->pBase[i]);
    		
    		i=(i+1)%6; 
    	}
    	printf("
    ");
    	return ;
    }
    
    bool full_queue(QUEUE *pQ){//判断队列是否为满
    	if((pQ->rear+1)%6==pQ->front)
    	{
    		return true;
    	}
    	else
    	{
    		return false;
    	}
    }
    
    bool empty_enque(QUEUE *pQ){//判断队列是否为空
    	if(pQ->rear==pQ->front)
    	{
    		return true;
    	}
    	else{
    		return false;
    	}
    }
    
    bool out_queue(QUEUE *pQ,int *pVal)//出队
    {
    	if(empty_enque(pQ))
    	{
    		return false;
    	}
    	else
    	{
    		*pVal=pQ->pBase[pQ->front];
    		pQ->front=(pQ->front+1)%6;
    		
    		return true;
    	}
    }
    

      

  • 相关阅读:
    shell字符串截取
    QT,QT SDK, QT Creator 区别
    linux -- 扩容 /home 空间( xfs文件系统分区扩容指定挂载点)
    条件变量与互斥量
    越努力越幸运--2018年7月22日周记
    越努力越幸运--动态数组vector
    越努力越幸运--3-日常bug修复
    越努力越幸运--2-LD_PRELOAD, fork ,僵尸进程
    越努力越幸运--1
    makefile--回顾基础篇
  • 原文地址:https://www.cnblogs.com/redzzy/p/13257329.html
Copyright © 2011-2022 走看看