• 循环队列 分类: 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;
    }


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

  • 相关阅读:
    IOS之UIKit_Day13
    IOS之UIKit_Day12
    IOS之UIKit_Day11
    IOS之UIKit_Day10
    iOS设计模式之工厂模式
    常用操作
    盒子模式
    block循环使用问题
    IOS-sqlite3
    IOS-View用作控制器
  • 原文地址:https://www.cnblogs.com/luo-peng/p/4646237.html
Copyright © 2020-2023  润新知