• 顺序队列


    #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;
    	}
    }
    

      

  • 相关阅读:
    JQuery实现滚动广告
    写链表时报HEAP CORRUPTION DETECTED: before Normal block
    ubuntu 运行sh提示unexpected operator
    解决Visual C++ 6 绿色版 Gallery 目录为空的问题
    写堆栈的时候报的奇怪的错。
    ubuntu开启SSH服务
    ubuntu修改runlevel
    Hello.Android.3rd.Edition——读书笔记
    java程序员应该掌握的10技能
    格式化数字的方法
  • 原文地址:https://www.cnblogs.com/redzzy/p/13257329.html
Copyright © 2020-2023  润新知