无聊 @1

确实是想不出一个好的标题,就用它吧。

这两天写程序蓝屏的次数明显增加,心疼啊!整得我都不敢运行程序了,也不知是咋回事....

没办法了,最终决定又装了一台虚拟机:Win2K-SP4

昨天在网上搜东西的时候,被一个流氓咬了一口,是一个叫ZAPU的BHO程序,发现被安装后想御载它,但它自带

的御载程序根本没用,更YD的是我还没找到它的程序在哪个目录下。不过还好不用IE有一段时间了,于是就放在那

里没管了。

由于未明确“7 - 1 无聊的队列”问题的具体内容,根据之前引用信息,推测可能涉及队列相关操作,下面以实现一个简单的循环队列并进行入队、出队等操作示例来提供可能的解决思路。 ### 循环队列的实现 ```c #include <stdio.h> #include <stdlib.h> // 定义循环队列结构体 typedef struct { int *a; int front; int back; int k; } MyCircularQueue; // 初始化循环队列 MyCircularQueue* myCircularQueueCreate(int k) { // 开辟循环队列的空间 MyCircularQueue* obj = (MyCircularQueue*)malloc(sizeof(MyCircularQueue)); obj->a = (int*)malloc(sizeof(int) * (k + 1)); obj->front = 0; obj->back = 0; obj->k = k; return obj; } // 判断队列是否为空 bool myCircularQueueIsEmpty(MyCircularQueue* obj) { return obj->front == obj->back; } // 判断队列是否已满 bool myCircularQueueIsFull(MyCircularQueue* obj) { return (obj->back + 1) % (obj->k + 1) == obj->front; } // 入队操作 bool myCircularQueueEnQueue(MyCircularQueue* obj, int value) { if (myCircularQueueIsFull(obj)) { return false; } obj->a[obj->back] = value; obj->back = (obj->back + 1) % (obj->k + 1); return true; } // 出队操作 bool myCircularQueueDeQueue(MyCircularQueue* obj) { if (myCircularQueueIsEmpty(obj)) { return false; } obj->front = (obj->front + 1) % (obj->k + 1); return true; } // 获取队首元素 int myCircularQueueFront(MyCircularQueue* obj) { if (myCircularQueueIsEmpty(obj)) { return -1; } return obj->a[obj->front]; } // 获取队尾元素 int myCircularQueueRear(MyCircularQueue* obj) { if (myCircularQueueIsEmpty(obj)) { return -1; } return obj->a[(obj->back - 1 + obj->k + 1) % (obj->k + 1)]; } // 释放循环队列的空间 void myCircularQueueFree(MyCircularQueue* obj) { free(obj->a); free(obj); } int main() { MyCircularQueue* obj = myCircularQueueCreate(3); myCircularQueueEnQueue(obj, 1); myCircularQueueEnQueue(obj, 2); myCircularQueueEnQueue(obj, 3); printf("Front: %d\n", myCircularQueueFront(obj)); printf("Rear: %d\n", myCircularQueueRear(obj)); myCircularQueueDeQueue(obj); printf("Front after dequeue: %d\n", myCircularQueueFront(obj)); myCircularQueueFree(obj); return 0; } ``` ### 代码解释 1. **结构体定义**:定义了 `MyCircularQueue` 结构体,包含一个数组 `a` 用于存储元素,`front` 表示队首位置,`back` 表示队尾位置,`k` 表示队列的最大容量 [^3]。 2. **初始化函数**:`myCircularQueueCreate` 函数用于开辟循环队列的空间,并初始化相关参数 [^3]。 3. **判断队列状态函数**:`myCircularQueueIsEmpty` 和 `myCircularQueueIsFull` 分别用于判断队列是否为空和是否已满。 4. **入队和出队函数**:`myCircularQueueEnQueue` 用于将元素入队,`myCircularQueueDeQueue` 用于将元素出队。 5. **获取队首和队尾元素函数**:`myCircularQueueFront` 和 `myCircularQueueRear` 分别用于获取队首和队尾元素。 6. **释放空间函数**:`myCircularQueueFree` 用于释放循环队列所占用的空间。 ### 相关问题
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值