3.3实现顺序队的各种运算
2018-02-07 16:42
197 查看
注意:出队元素并没有从数组中删除
sqqueue.cpp
//顺序队列(非环形队列)基本运算算法
#include <stdio.h>
#include <malloc.h>
#define MaxSize 100
typedef char ElemType;
typedef struct
{
ElemType data[MaxSize];
int front,rear; //队头和队尾指针
} SqQueue;
void InitQueue(SqQueue *&q)
{ q=(SqQueue *)malloc (sizeof(SqQueue));
q->front=q->rear=-1;
}
void DestroyQueue(SqQueue *&q) //销毁队列
{
free(q);
}
bool QueueEmpty(SqQueue *q) //判断队列是否为空
{
return(q->front==q->rear);
}
bool enQueue(SqQueue *&q,ElemType e) //进队
{ if (q->rear==MaxSize-1) //队满上溢出
return false; //返回假
q->rear++; //队尾增1
q->data[q->rear]=e; //rear位置插入元素e
return true; //返回真
}
bool deQueue(SqQueue *&q,ElemType &e) //出队
{ if (q->front==q->rear) //队空下溢出
return false;
q->front++;
e=q->data[q->front];
return true;
}
sqqueue.cpp
//顺序队列(非环形队列)基本运算算法
#include <stdio.h>
#include <malloc.h>
#define MaxSize 100
typedef char ElemType;
typedef struct
{
ElemType data[MaxSize];
int front,rear; //队头和队尾指针
} SqQueue;
void InitQueue(SqQueue *&q)
{ q=(SqQueue *)malloc (sizeof(SqQueue));
q->front=q->rear=-1;
}
void DestroyQueue(SqQueue *&q) //销毁队列
{
free(q);
}
bool QueueEmpty(SqQueue *q) //判断队列是否为空
{
return(q->front==q->rear);
}
bool enQueue(SqQueue *&q,ElemType e) //进队
{ if (q->rear==MaxSize-1) //队满上溢出
return false; //返回假
q->rear++; //队尾增1
q->data[q->rear]=e; //rear位置插入元素e
return true; //返回真
}
bool deQueue(SqQueue *&q,ElemType &e) //出队
{ if (q->front==q->rear) //队空下溢出
return false;
q->front++;
e=q->data[q->front];
return true;
}
相关文章推荐
- 实现环形队列各种基本运算的算法(用顺序结构)
- 实现顺序队列各种基本运算的算法
- 实现顺序栈的各种基本运算的算法
- 实现顺序队列各种基本运算的算法
- 编写一个程序,实现顺序表的各种基本运算
- 实现顺序串各种基本运算的算法
- 实现顺序表的各种基本运算(利用线性表来实现)
- 实现顺序表各种基本运算算法
- 编写一个程序,实现顺序栈的各种基本运算。
- 实现顺序表各种基本运算的算法
- 实现顺序栈的各种基本运算的算法
- 实现顺序表的各种基本运算
- 3.1实现顺序栈的各种基本运算
- 编写一个程序实现顺序栈的各种基本运算(假设顺序表的元数基本类型为Char)
- 编写一个程序实现顺序表的各种基本运算(假设顺序表的元数基本类型为Char)
- 实现顺序栈各种基本运算的算法
- 实现顺序栈各种基本运算
- 编写一个程序,实现顺序环形队列的各种基本运算。
- 线性表的顺序储存及运算实现-------------顺序表
- 3.4实现链队的各种运算