6-2 循环队列操作集
时间: 2024-05-25 09:19:44 浏览: 17
循环队列是一种经典的数据结构,常用于解决队列的空间利用问题。其操作集包括初始化、入队、出队、求队列长度、判断队列是否为空、判断队列是否已满等。其中,入队操作将元素加入队列尾部,出队操作将队列头部元素弹出并返回,求队列长度操作返回当前队列的元素个数,判断队列是否为空操作返回布尔值,判断队列是否已满操作返回布尔值。
相关问题
6-2 循环队列操作集,用C语言写
//定义循环队列结构体
typedef struct {
int *data; //存储队列元素的数组
int front; //队头指针
int rear; //队尾指针
int size; //队列大小
} CircularQueue;
//初始化循环队列
void initCircularQueue(CircularQueue *q, int size) {
q->data = (int*)malloc(sizeof(int)*size);
q->front = q->rear = 0;
q->size = size;
}
//判断循环队列是否为空
int isCircularQueueEmpty(CircularQueue *q) {
return q->front == q->rear;
}
//判断循环队列是否已满
int isCircularQueueFull(CircularQueue *q) {
return (q->rear+1)%q->size == q->front;
}
//入队
int enqueue(CircularQueue *q, int value) {
if (isCircularQueueFull(q)) {
return 0; //队列已满,入队失败
}
q->data[q->rear] = value;
q->rear = (q->rear+1)%q->size;
return 1; //入队成功
}
//出队
int dequeue(CircularQueue *q, int *value) {
if (isCircularQueueEmpty(q)) {
return 0; //队列为空,出队失败
}
*value = q->data[q->front];
q->front = (q->front+1)%q->size;
return 1; //出队成功
}
//获取队头元素
int getFront(CircularQueue *q, int *value) {
if (isCircularQueueEmpty(q)) {
return 0; //队列为空,获取队头元素失败
}
*value = q->data[q->front];
return 1; //获取队头元素成功
}
//获取队列长度
int getCircularQueueLength(CircularQueue *q) {
return (q->rear - q->front + q->size) % q->size;
}
//清空循环队列
void clearCircularQueue(CircularQueue *q) {
q->front = q->rear = 0;
}
考研数据结构代码合集
您好!对于考研数据结构的代码合集,我可以为您提供一些常见的数据结构代码示例。以下是一些常见的数据结构及其对应的代码合集:
1. 数组(Array):
- 数组的初始化、插入、删除等操作。
- 数组的查找算法,如二分查找等。
2. 链表(Linked List):
- 单链表的创建、插入、删除等操作。
- 双向链表和循环链表的实现。
3. 栈(Stack):
- 栈的初始化、入栈、出栈等操作。
- 利用栈实现括号匹配、计算表达式等。
4. 队列(Queue):
- 队列的初始化、入队、出队等操作。
- 利用队列实现广度优先搜索(BFS)等算法。
5. 树(Tree):
- 二叉树的创建、遍历(前序、中序、后序)、查找等操作。
- 二叉搜索树的插入、删除、查找等操作。
6. 图(Graph):
- 图的创建(邻接矩阵、邻接表等表示方法)。
- 图的遍历(深度优先搜索DFS、广度优先搜索BFS)。
这些是一些常见的数据结构代码合集,您可以根据需要进一步探索每个数据结构的具体代码实现。希望能对您的考研复习有所帮助!如果您有其他问题,欢迎继续提问。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)