• 顺序队列


    #include <iostream>
    #define MaxSize 50
    using namespace std;
    typedef int DataType;
    //队列的顺序存储结构 
    typedef struct{  
    	DataType data[MaxSize];  //存放队列中的数据元素 
    	int front,rear;			//队头指针和队尾指针 
    }SqQueue;
    
    /*
    假设队列空间够用 
    顺序队列的缺点:
    1.可能存在上溢和下溢
    2.所以真正应用时要考虑,数组大小,判断溢出时怎莫作 
    	顺序队列:队头删除数据元素,队尾插入数据元素
    	1.数据运算
    		1.InitQueue(&Q):初始化队列,构造一个空队列
    		2.QueueEmpty(&Q):队列判空,若队列为空,返回true,否则返回false
    		3.EnQueue(&Q,x):入队,若队列未满,将数据元素插入到队尾
    		4.DeQueue(&Q,&x):出队,若队列非空,删除队头元素,并用x返回
    		5.GetHead(Q,&x):读出对头元素,若队列非空,则将队头元素赋值给x
    	2.队列术语 
    		1.队头(front):允许删除的一端
    		2.队尾(rear):允许插入的一端
    		3.空队列:不含任何元素的队列 
    	3.顺序队列的判断条件 
    		1.队列的初始状态:Q.front=Q.rear=0
    		2.队列的满了条件:Q.rear-Q.front=MaxSize
    		3.队列空了的条件:Q.rear=Q.front 
    */
    
    
    //初始化一个顺序队列 
    void InitQueue(SqQueue &Q){
    	//队列的初始状态 队列空,并且位置为0 Q.front=Q.rear=0
    	Q.front=Q.rear=0; 
    } 
    //队列判空
    bool QueueEmpty(SqQueue &Q){
    	if(Q.front==Q.rear){
    		cout<<"对列为空!"<<endl;
    		return true;
    	}else{
    		return false;
    	}
    } 
    //入队
    bool EnQueue(SqQueue &Q,DataType x){
    	if(Q.rear-Q.front==MaxSize){
    		cout<<"队列已满,无法插入!"<<endl;
    		return false;
    	}else{
    		Q.data[Q.rear++]=x;
    		return true;
    	}
    } 
    //出队
    bool DeQueue(SqQueue &Q,DataType &x){
    	if(Q.rear==Q.front){
    		cout<<"队列为空,无法出队!"<<endl;
    		return false;
    	}else{
    		x=Q.data[Q.front++];
    		return true;
    	}
    } 
    //读队头元素
    bool GetHead(SqQueue &Q,DataType &x){
    	if(Q.rear==Q.front){
    		cout<<"队列为空!无法得到队头元素"<<endl;
    		return false;
    	} else{
    		x=Q.data[Q.front];
    		return true;
    	}
    } 
    int main()
    {
    	SqQueue Q;
    	InitQueue(Q);
    	EnQueue(Q,100);
    	int x;
    	DeQueue(Q,x);
    	cout<<x<<endl;
    	QueueEmpty(Q);
    	return 0;
    }
    

      

  • 相关阅读:
    centos7配置java环境
    docker下安装vim
    小程序开发知识点总结
    response设置输出文件编码
    IDEA中,将文件夹加入classpath
    【问题排查】StringIndexOutOfBoundsException
    【问题排查记录】Field 'id' doesn't have a default value;
    http
    raw_input() 与 input() __ Python
    记一次eclipse无法启动的排查过程
  • 原文地址:https://www.cnblogs.com/nanfengnan/p/14402163.html
Copyright © 2020-2023  润新知