zoukankan      html  css  js  c++  java
  • 循环队列 分类: c/c++ 2014-10-10 23:28 605人阅读 评论(0) 收藏

    利用线性表实现队列,为了有效利用空间,将其设计为循环结构,防止假溢出;牺牲一个存储单元以区分队空、队满。
    设front队头,rear队尾,N为顺序表大小
    队空:rear==front

    队满:(rear+1)%N==front

    #include<stdio.h>
    #define Elemtype int
    #define N 100
    struct Queue
    {
    	Elemtype data[N];
    	int front,rear;
    };
    void initQueue(Queue &Q)
    {
    	Q.rear=Q.front=0;
    }
    int enQueue(Queue &Q,Elemtype x)
    {
    	if((Q.rear+1)%N==Q.front)return 0;
    	Q.rear=(Q.rear+1)%N;
    	Q.data[Q.rear]=x;
    	return 1;
    }
    
    int deQueue(Queue &Q,Elemtype &x)
    {
    	if(Q.rear==Q.front)return 0;
    	Q.front=(Q.front+1)%N;
    	x=Q.data[Q.front];
    	return 1;
    }
    int main()
    {
    	Queue Q;
    	initQueue(Q);
    	enQueue(Q,12);
    	enQueue(Q,2);
    	Elemtype x;
    	deQueue(Q,x);
    	printf("%d",x);
    	return 0;
    }


    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    储备学习drf的基本认知
    VUE基础一
    Django之outh模块
    MySQL模糊查询效率
    MySQL中位数计算方法
    1292
    正则表达式【UltraEdit / MySQL / 数据清洗】
    grep awk sed echo
    mysqldump备份工具使用
    shell的MySQL命令
  • 原文地址:https://www.cnblogs.com/luo-peng/p/4646237.html
Copyright © 2011-2022 走看看