关闭

数据结构-循环队列

标签: 数据结构循环队列
156人阅读 评论(0) 收藏 举报
分类:
//克服假溢出现象
#include <stdio.h>
#include <stdlib.h>
#define LIST_INIT_SIZE 10
#define LISTINCREMENT 100
#define STACK_INIT_SIZE 100
#define STACKINCREMENT 10
#define TRUE 1
#define FALSE 0
#define true 1
#define false 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2
#define OPSETSIZE 7
#define MAXQSIZE 100
typedef int Status;
typedef int ElemType;
typedef int QElemType;
typedef struct
{
    QElemType  *base;
    int  front, rear;
} SqQueue;

Status InitQueue(SqQueue *Q);
Status EnQueue(SqQueue *Q, ElemType e);
Status DeQueue (SqQueue *Q, ElemType *e);
int QueueLength(SqQueue Q);

int main()
{
    SqQueue Q;
    InitQueue(&Q);
    EnQueue(&Q, 1);
    EnQueue(&Q, 2);
    EnQueue(&Q, 3);
    EnQueue(&Q, 4);
    EnQueue(&Q, 5);
    printf("Then the length of Queue is %d\n", QueueLength(Q));
    while(QueueLength(Q))
    {
        ElemType E;
        DeQueue(&Q, &E);
        printf("DeQueue , The Elem is %d\n", E);
    }
    return 0;
}



Status InitQueue(SqQueue *Q)
{
    Q->base = (ElemType *) malloc(MAXQSIZE *sizeof (ElemType));
    if (!Q->base)
        exit (OVERFLOW);
    Q->front = Q->rear = 0;
    return OK;
}

Status EnQueue(SqQueue *Q, ElemType e)
{
    if ((Q->rear+1) % MAXQSIZE == Q->front)
        return ERROR;
    Q->base[Q->rear] = e;
    Q->rear = (Q->rear+1) % MAXQSIZE;
    return OK;
}
Status DeQueue (SqQueue *Q, ElemType *e)
{
    if (Q->front == Q->rear)
        return ERROR;
    *e = Q->base[Q->front];
    Q->front = (Q->front + 1) % MAXQSIZE;
    return OK;
}
int QueueLength(SqQueue Q)
{
    return (Q.rear - Q.front+MAXQSIZE) % MAXQSIZE;
}
 

0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

数据结构——循环队列存储结构以及实现

队列的顺序存储结构,是将元素存在一个一维数组中,队头所在的位置下标是0,当要入队操作时,直接在队尾后一个位置插入一个结点即可,时间复杂度为O(1)。而出队列,出队的元素下标为0,所以队列中所有的元素都...
  • Carry_zwxb
  • Carry_zwxb
  • 2016-10-30 05:25
  • 1296

数据结构中循环队列的清空、销毁、求队长、遍历、取首元素等操作及运用

数据结构中队列有好几种形式,本文写的是循环队列,以下为原创代码。创建c++工程: 头文件一:基本定义和头文件 #include"stdlib.h" #include"stdio.h" #def...
  • wys_NO1
  • wys_NO1
  • 2016-11-03 18:53
  • 2704

数据结构C语言实现之循环队列

#include #include //定义函数结果状态码 #define OK 1 #define ERROR 0 #define TRUE 1 #define FALSE 0 //定义循环队...
  • hu_jiacheng
  • hu_jiacheng
  • 2013-04-20 15:01
  • 7024

linklist栈和循环队列数据结构的应用

  • 2013-11-07 14:06
  • 6KB
  • 下载

数据结构C语言版_循环队列

  • 2011-04-12 10:59
  • 4KB
  • 下载

数据结构循环队列

  • 2013-04-27 23:11
  • 12KB
  • 下载

数据结构-循环队列

  • 2017-10-19 22:50
  • 208KB
  • 下载

循环队列数据结构

  • 2017-07-03 14:59
  • 2KB
  • 下载

数据结构源码之线性循环队列

  • 2012-07-21 15:28
  • 44KB
  • 下载

循环队列 数据结构

  • 2014-08-15 09:53
  • 1KB
  • 下载
    个人资料
    • 访问:9817次
    • 积分:438
    • 等级:
    • 排名:千里之外
    • 原创:34篇
    • 转载:3篇
    • 译文:0篇
    • 评论:2条
    文章分类