【day2数据结构】顺序队列的基本操作

关于顺序队列有以下常见结论:

 1. 初始化队列:qu.front==qu.rear
 2. 入队:
 	qu.data[qu.rear++]=x;
 	qu.rear=(qu.rear+1)%maxsize
 3. 出队:
    qu.front=(qu.front+1)%maxsize
 4. 判断条件:
    qu.front==(qu.rear+1)%maxsize(判断栈满没满,对应入栈操作)
    qu.front==qu.rear(判断栈是否为空,对应出栈操作)

结构体定义

typedef struct SqQueue{
    
    
    int data[maxSize];
    int front;
    int rear;
}SqQueue;

队列初始化:

void initQueue(SqQueue &qu){
    
    
    qu.front=qu.rear=0;
}

判空操作:

int isEmpty(SqQueue qu){
    
    
    if(qu.front==qu.rear)
        return 1;
    else
        return 0;
}

入队操作:

int enQuene(SqQueue &qu,int x){
    
    
    if((qu.rear+1)%maxSize==qu.front){
    
    
        return 0;
    }
    qu.data[qu.rear]=x;
    qu.rear=(qu.rear+1)%maxSize;

    return 0;
}

出队操作:

int deQuene(SqQueue &qu){
    
    
    if(qu.rear==qu.front){
    
    
        return 0;
    }
    else{
    
    
        qu.front=(qu.front+1)%maxSize;
        return 1;
    }
}

打印队列:

int print(SqQueue qu){
    
    
    while(qu.front!=qu.rear){
    
    
        printf("%d",qu.data[qu.front++]);
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_51763547/article/details/132121341