数据结构---队列---循环队列---顺序存储
2017-06-21 11:15
337 查看
#include<iostream>
#include<stdio.h>
#include<stdlib.h>
using namespace std;
#define OK 1
#define ERROR 0
#define TRUE 1
#define FALSE 0
#define MAXSIZE 10
typedef int Status;
typedef int QElemType;
typedef struct
{
QElemType data[MAXSIZE];
int front;
int rear;
}SqQueue;
Status InitQueue(SqQueue *Q)
{
Q->front = 0;
Q->rear = 0;
return OK;
}
int QueueLength(SqQueue Q)
{
return (Q.rear-Q.front + MAXSIZE ) % MAXSIZE;
}
Status EnQueue(SqQueue *Q,QElemType e)
{
if((Q->rear+1)% MAXSIZE == Q->front)
return ERROR;
Q->data[Q->rear] = e;
Q->rear = (Q->rear+1) % MAXSIZE;
return OK;
}
Status DeQueue(SqQueue *Q,QElemType *e)
{
if(Q->front == Q->rear)
return ERROR;
*e = Q->data[Q->front];
Q->front = (Q->front+1) % MAXSIZE;
return OK;
}
int main()
{
SqQueue *Q = (SqQueue *)malloc(sizeof(SqQueue));
InitQueue(Q);
EnQueue(Q,1);
EnQueue(Q,2);
EnQueue(Q,3);
EnQueue(Q,4);
QElemType *e = (QElemType *)malloc(sizeof(QElemType));
DeQueue(Q,e);
printf("de-%d\n",*e);
int a;
a=QueueLength(*Q);
printf("len=%d\n",a);
free(e);
return 0;
}
#include<stdio.h>
#include<stdlib.h>
using namespace std;
#define OK 1
#define ERROR 0
#define TRUE 1
#define FALSE 0
#define MAXSIZE 10
typedef int Status;
typedef int QElemType;
typedef struct
{
QElemType data[MAXSIZE];
int front;
int rear;
}SqQueue;
Status InitQueue(SqQueue *Q)
{
Q->front = 0;
Q->rear = 0;
return OK;
}
int QueueLength(SqQueue Q)
{
return (Q.rear-Q.front + MAXSIZE ) % MAXSIZE;
}
Status EnQueue(SqQueue *Q,QElemType e)
{
if((Q->rear+1)% MAXSIZE == Q->front)
return ERROR;
Q->data[Q->rear] = e;
Q->rear = (Q->rear+1) % MAXSIZE;
return OK;
}
Status DeQueue(SqQueue *Q,QElemType *e)
{
if(Q->front == Q->rear)
return ERROR;
*e = Q->data[Q->front];
Q->front = (Q->front+1) % MAXSIZE;
return OK;
}
int main()
{
SqQueue *Q = (SqQueue *)malloc(sizeof(SqQueue));
InitQueue(Q);
EnQueue(Q,1);
EnQueue(Q,2);
EnQueue(Q,3);
EnQueue(Q,4);
QElemType *e = (QElemType *)malloc(sizeof(QElemType));
DeQueue(Q,e);
printf("de-%d\n",*e);
int a;
a=QueueLength(*Q);
printf("len=%d\n",a);
free(e);
return 0;
}
相关文章推荐
- 数据结构-队列的顺序存储(循环队列)
- 数据结构学习之循环队列(顺序存储)
- 数据结构学习笔记-队列的顺序存储(循环队列)
- 数据结构-循环队列顺序存储
- 循环队列 顺序存储 C实现
- 数据结构之队列的顺序存储
- C++实现循环队列之顺序存储
- 数据结构-循环顺序队列的基本操作
- 基本数据结构,循环队列的顺序实现。
- [数据结构][适用循环队列和非循环队列]顺序队列的实现。
- 数据结构学习笔记 --- 队列(循环队列-队列的顺序表示和实现)
- 数据结构:循环队列(队列的顺序表示)
- 循环队列的顺序存储
- 顺序存储循环队列
- 数据结构Java实现07----队列:顺序队列&顺序循环队列、链式队列、顺序优先队列
- 采用顺序存储实现循环队列的初始化、入队、出队操作。
- 重温数据结构:队列的链式实现、顺序实现及循环队列
- 数据结构(C实现)------- 顺序队列(循环队列之计数器实现)
- 数据结构(C实现)------- 顺序队列(循环队列之少用一个存储空间实现) .
- 队列顺序循环存储实现