实战:深色模式 3 种实现方案(媒体查询/类切换/脚本控制)
2026/5/8 17:26:26
代码语言:javascript
AI代码解释
// 获取队列长度 bool GetLength(SqQuene &Q, ElemType &len) { if (Q.front == Q.rear) { len = 0; } else { len = Q.front; // 指向队头 while ((len + 1) % MaxSize != Q.rear) { len++; } len = len - Q.front + 1; // 如果有元素出队,会导致Q.front不为0,影响长度的判断,且初始化队列时,Q.front置为0,同样影响长度 } return true; }代码语言:javascript
AI代码解释
/* 循环队列 */ #include <iostream> #define MaxSize 10 // 队列中元素的最大个数 using namespace std; typedef int ElemType; struct SqQueue { ElemType data[MaxSize]; // 队列中元素的最多个数 int front, rear; // 队头指针,队尾指针 }; // 初始化队列 void InitQueue(SqQueue &Q) { Q.front = Q.rear = 0; } // 队列判空 bool QueueEmpty(SqQueue &Q) { if (Q.front == Q.rear) { return true; } else { return false; } } // 入队 bool EnQueue(SqQueue &Q, ElemType x) { if ((Q.rear + 1) % MaxSize == Q.front) { // 队满 return false; } else { Q.data[Q.rear] = x; // 赋值给下一队尾 Q.rear = (Q.rear + 1) % MaxSize; // 在逻辑上将存储空间变为“环状”,物理上仍然是静态数组 return true; } } // 出队 bool DeQueue(SqQueue &Q, ElemType &x) { if (Q.rear == Q.front) { // 队空 return false; } else { x = Q.data[Q.front]; Q.front = (Q.front + 1) % MaxSize; // 队头指针后移 return true; } } // 获取队头元素 bool GetHead(SqQueue &Q, ElemType &x) { if (Q.rear == Q.front) { // 队空 return false; } else { x = Q.data[Q.front]; return true; } } // 获取队列长度 bool GetLength(SqQueue &Q, ElemType &len) { if (Q.front == Q.rear) { len = 0; } else { len = Q.front; // 指向队头 while ((len + 1) % MaxSize != Q.rear) { len++; } len = len - Q.front + 1; // 如果有元素出队,会导致Q.front不为0,影响长度的判断,且初始化队列时,Q.front置为0,同样影响长度 } return true; } int main() { SqQueue Q; InitQueue(Q); ElemType head, pop, length; for (int i = 1; i < 6; i++) { EnQueue(Q, i); } GetHead(Q, head); cout << "队头元素:" << head << endl; GetLength(Q, length); cout << "队列长度:" << length << endl; DeQueue(Q, pop); cout << "出队元素:" << pop << endl; GetHead(Q, head); cout << "队头元素:" << head << endl; GetLength(Q, length); cout << "队列长度:" << length << endl; }