jsp网站开发公司,公司企业邮箱是什么,广西网站建设营销公司,一个空间做多个网站一、队列的顺序存储
#define MAXSIZE 100
typedef int ElementType;
typedef struct{ElementType Data[MAXSIZE];//用一维数组存放队列元素int front;//队头指针int rear;//队尾指针
}SqQueue;front指针指向队头元素 rear指针指向队尾元素的下一个位置 空对时#xff1a;re…一、队列的顺序存储
#define MAXSIZE 100
typedef int ElementType;
typedef struct{ElementType Data[MAXSIZE];//用一维数组存放队列元素int front;//队头指针int rear;//队尾指针
}SqQueue;front指针指向队头元素 rear指针指向队尾元素的下一个位置 空对时rearfront 队列初始化rearfront0 入队对未满时先送值到队尾再队尾指针加一 出队对不为空时先取队头元素再队头指针加一 不能使用q.rearMAXSIZE判断队满因为出队的过程中数组前面的部分会有空闲这时候入队会有上溢出但是是假溢出
循环队列 将队列从逻辑上造成一个环状利用取余实现
初始空队q.frontq.rear0出队指针变化q.front(q.front1)%MAXSIZE入队指针变化q.rear(q.rear1)%MAXSIZE队列长度[MAXSIZE-(q.front-q.rear)]%MAXSIZE出队、入队都按顺时针都是指针加一队满
方式一
牺牲一个存储的单元来区分空队、满队约定当队头指针在队尾指针的下一个位置时队满
队空q.frontq.rear
队满(q.rear1)%MAXSIZEq.front
队列中的元素个数(q.rear-q.frontMAXSIZE)%MAXSIZE方式二
在类型中新增一个数据成员用于表示元素个数
队空q.Size0
队满q.Sizeq.MAXSIZE方式三
在类型中新增一个数据成员用以区分对空、队满
队空q.tag0
队满q.tag1队列的链式存储结构
链队本质上是一个同时带有队头指针、队尾指针的单链表头指针指向队头结点尾指针指向队尾结点链式队列适合于数据元素变化较大的情形不存在上溢当使用多个队列时最好使用链式队列可以避免存储分配不合理下的溢出问题
//链式队列的结点
typedef struct LinkNode{ElementType data;//数据域struct LinkNode *next;//指针域指向下一个结点
}LinkNode;
//链式队列
typedef struct{LinkNode *front;//队列的队头指针LinkNode *rear;//队列的队尾指针
}LinkQueue;