zoukankan      html  css  js  c++  java
  • 顺序循环队列的基本操作(二)

    /*增设tag数据,区分队满队空*/
    #include<stdio.h>
    #define MaxSize 10
    typedef char ElemType;
    typedef struct 
    {
    	ElemType data[MaxSize];
    	int front,rear,tag;
    }SqQueue;
    bool InitQueue(SqQueue &q)
    {
    	q.front=q.rear=0;//初始化队头队尾指针
    	q.tag=0;
    	return true;
    }
    bool EmptyQueue(SqQueue q)
    {
    	if(q.rear==q.front && q.tag==0)		//队空的条件:首尾指针指向同一地址且标记tag为0
    		return true;
    	return false;
    }
    bool EnQueue(SqQueue &q,ElemType e)
    {
    	if(q.rear==q.front && q.tag==1)		//队满的条件(首尾指针指向同一地址且标记tag为1)
    		return false;
    	q.data[q.rear++]=e;
    	q.tag=1;
    	return true;
    }
    bool OutQueue(SqQueue &q,ElemType &e)
    {
    	if(q.rear==q.front && q.tag==0)		//判空
    		return false;
    	e=q.data[q.front++];
    	q.tag=0;
    	return true;
    }
    bool HeadQueue(SqQueue q,ElemType &e)
    {
    	if(q.rear==q.front && q.tag==0)
    		return false;
    	e=q.data[q.front];
    	return true;
    }
    void main()
    {
    	SqQueue q;
    	InitQueue(q);
    	ElemType e;
    	printf("The Queue is %s
    ",(EmptyQueue(q)?"Empty!":"UnEmpty!"));
    	EnQueue(q,'a');
    	EnQueue(q,'b');
    	EnQueue(q,'c');
    	HeadQueue(q,e);
    	printf("Queue_Head=%c
    ",e);
    	OutQueue(q,e);
    	HeadQueue(q,e);
    	printf("Queue_Head=%c
    ",e);
    }
    

      

  • 相关阅读:
    牛客练习赛27 水图(思维+暴搜)
    差分
    矩阵化一维
    倍增法 求公共祖先
    vector 牛逼 +lower_bound+ upper_bound
    cmp和sort
    字符串的比较
    s 贪心
    太鼓达人 (有位运算的作用,但可能理解错了哈哈)
    kao shi di er ti(还没有订正)
  • 原文地址:https://www.cnblogs.com/-slz-2/p/13199359.html
Copyright © 2011-2022 走看看