当前位置: 首页 > news >正文

wordpress做旅游网站在哪里可以看免费的视频

wordpress做旅游网站,在哪里可以看免费的视频,wordpress 文章 nofollow,免费学校网站模板html一、认识队列 队列是一种常见的数据结构#xff0c;按照先进先出#xff08;FIFO#xff0c;First In First Out#xff09;的原则排列数据。也就是说#xff0c;最早进入队列的元素最先被移除。队列主要支持两种基本操作#xff1a; 入队#xff08;enqueue#xff0…一、认识队列 队列是一种常见的数据结构按照先进先出FIFOFirst In First Out的原则排列数据。也就是说最早进入队列的元素最先被移除。队列主要支持两种基本操作 入队enqueue将元素添加到队列的尾部。 出队dequeue从队列的头部移除并返回元素。 队列的其他操作 创建队列初始化一个空队列。 查看队列头部元素返回但不移除队列的头部元素通常称为“peek”或“front”。 判断队列是否为空检查队列中是否还有元素。 获取队列大小返回队列中元素的数量。 1.顺序队列 顺序队列即用顺序结构存储数组实现 #include iostream class Queue { private: int* arr; int front; int rear; int capacity; public: Queue(int size) { arr new int[size]; capacity size; front 0; rear -1; } ~Queue() { delete[] arr; } void enqueue(int item) { if (rear capacity - 1) { std::cout Queue is full! std::endl; return; } arr[rear] item; } int dequeue() { if (is_empty()) { std::cout Queue is empty! std::endl; return -1; // 或抛出异常 } return arr[front]; } int peek() { if (is_empty()) { std::cout Queue is empty! std::endl; return -1; // 或抛出异常 } return arr[front]; } bool is_empty() const { return front rear; } int size() const { return rear - front 1; } }; int main() { Queue q(5); q.enqueue(10); q.enqueue(20); q.enqueue(30); std::cout Front element: q.peek() std::endl; // 输出 10 std::cout Dequeued element: q.dequeue() std::endl; // 输出 10 std::cout Queue size: q.size() std::endl; // 输出 2 return 0; } 2.链式队列 链式队列即用链式存储用链表实现 #include iostream class Node { public: int data; Node* next; Node(int value) : data(value), next(nullptr) {} }; class Queue { private: Node* front; Node* rear; int size; public: Queue() : front(nullptr), rear(nullptr), size(0) {} ~Queue() { while (!is_empty()) { dequeue(); } } void enqueue(int item) { Node* newNode new Node(item); if (rear) { rear-next newNode; } rear newNode; if (!front) { front rear; } size; } int dequeue() { if (is_empty()) { std::cout Queue is empty! std::endl; return -1; // 或抛出异常 } Node* temp front; int value front-data; front front-next; delete temp; if (!front) { rear nullptr; // 队列变空 } size--; return value; } int peek() { if (is_empty()) { std::cout Queue is empty! std::endl; return -1; // 或抛出异常 } return front-data; } bool is_empty() const { return size 0; } int get_size() const { return size; } }; int main() { Queue q; q.enqueue(10); q.enqueue(20); q.enqueue(30); std::cout Front element: q.peek() std::endl; // 输出 10 std::cout Dequeued element: q.dequeue() std::endl; // 输出 10 std::cout Queue size: q.get_size() std::endl; // 输出 2 return 0; } 二、双端队列 1.顺序双端队列 #include iostream class Deque { private: int* arr; int front; int rear; int capacity; public: Deque(int size) { arr new int[size]; capacity size; front -1; rear 0; } ~Deque() { delete[] arr; } void insertFront(int item) { if (is_full()) { std::cout Deque is full! std::endl; return; } if (is_empty()) { front 0; rear 0; } else { front (front - 1 capacity) % capacity; // 循环移动前指针 } arr[front] item; } void insertRear(int item) { if (is_full()) { std::cout Deque is full! std::endl; return; } if (is_empty()) { front 0; rear 0; } else { rear (rear 1) % capacity; // 循环移动后指针 } arr[rear] item; } int deleteFront() { if (is_empty()) { std::cout Deque is empty! std::endl; return -1; // 或抛出异常 } int item arr[front]; if (front rear) { // 仅有一个元素 front -1; rear 0; } else { front (front 1) % capacity; // 循环移动前指针 } return item; } int deleteRear() { if (is_empty()) { std::cout Deque is empty! std::endl; return -1; // 或抛出异常 } int item arr[rear]; if (front rear) { // 仅有一个元素 front -1; rear 0; } else { rear (rear - 1 capacity) % capacity; // 循环移动后指针 } return item; } int getFront() const { if (is_empty()) { std::cout Deque is empty! std::endl; return -1; // 或抛出异常 } return arr[front]; } int getRear() const { if (is_empty()) { std::cout Deque is empty! std::endl; return -1; // 或抛出异常 } return arr[rear]; } bool is_empty() const { return front -1; } bool is_full() const { return (rear 1) % capacity front; } }; int main() { Deque dq(5); dq.insertRear(10); dq.insertRear(20); dq.insertFront(5); dq.insertFront(0); std::cout Front element: dq.getFront() std::endl; // 输出 0 std::cout Rear element: dq.getRear() std::endl; // 输出 20 dq.deleteFront(); // 删除 0 dq.deleteRear(); // 删除 20 std::cout Front element after deletions: dq.getFront() std::endl; // 输出 5 return 0; } 2.链式双端队列 双端队列的链式存储采用双向链表来实现模拟 #include iostream class Node { public: int data; Node* next; Node* prev; Node(int value) : data(value), next(nullptr), prev(nullptr) {} }; class Deque { private: Node* front; Node* rear; public: Deque() : front(nullptr), rear(nullptr) {} ~Deque() { while (!is_empty()) { deleteFront(); } } void insertFront(int item) { Node* newNode new Node(item); if (is_empty()) { front rear newNode; } else { newNode-next front; front-prev newNode; front newNode; } } void insertRear(int item) { Node* newNode new Node(item); if (is_empty()) { front rear newNode; } else { rear-next newNode; newNode-prev rear; rear newNode; } } int deleteFront() { if (is_empty()) { std::cout Deque is empty! std::endl; return -1; // 或抛出异常 } Node* temp front; int value front-data; front front-next; if (front) { front-prev nullptr; } else { rear nullptr; // 如果队列变空 } delete temp; return value; } int deleteRear() { if (is_empty()) { std::cout Deque is empty! std::endl; return -1; // 或抛出异常 } Node* temp rear; int value rear-data; rear rear-prev; if (rear) { rear-next nullptr; } else { front nullptr; // 如果队列变空 } delete temp; return value; } int getFront() const { if (is_empty()) { std::cout Deque is empty! std::endl; return -1; // 或抛出异常 } return front-data; } int getRear() const { if (is_empty()) { std::cout Deque is empty! std::endl; return -1; // 或抛出异常 } return rear-data; } bool is_empty() const { return front nullptr; } }; int main() { Deque dq; dq.insertRear(10); dq.insertRear(20); dq.insertFront(5); dq.insertFront(0); std::cout Front element: dq.getFront() std::endl; // 输出 0 std::cout Rear element: dq.getRear() std::endl; // 输出 20 dq.deleteFront(); // 删除 0 dq.deleteRear(); // 删除 20 std::cout Front element after deletions: dq.getFront() std::endl; // 输出 5 return 0; } 三、循环队列 1.顺序循环队列 #include iostream class CircularQueue { private: int* arr; // 存储队列元素的数组 int front; // 队列头指针 int rear; // 队列尾指针 int capacity; // 队列的最大容量 int count; // 当前队列中的元素数量 public: CircularQueue(int size) { arr new int[size]; capacity size; front 0; rear -1; count 0; } ~CircularQueue() { delete[] arr; } // 入队操作 void enqueue(int item) { if (is_full()) { std::cout Queue is full! std::endl; return; } rear (rear 1) % capacity; // 循环移动尾指针 arr[rear] item; count; } // 出队操作 int dequeue() { if (is_empty()) { std::cout Queue is empty! std::endl; return -1; // 或抛出异常 } int item arr[front]; front (front 1) % capacity; // 循环移动头指针 count--; return item; } // 获取队头元素 int peek() const { if (is_empty()) { std::cout Queue is empty! std::endl; return -1; // 或抛出异常 } return arr[front]; } // 检查队列是否为空 bool is_empty() const { return count 0; } // 检查队列是否已满 bool is_full() const { return count capacity; } // 获取当前队列大小 int size() const { return count; } }; int main() { CircularQueue cq(5); // 创建一个容量为5的循环队列 cq.enqueue(10); cq.enqueue(20); cq.enqueue(30); cq.enqueue(40); cq.enqueue(50); std::cout Front element: cq.peek() std::endl; // 输出 10 std::cout Dequeued: cq.dequeue() std::endl; // 输出 10 std::cout Front element after dequeue: cq.peek() std::endl; // 输出 20 cq.enqueue(60); // 尝试入队一个新元素 std::cout Front element after enqueue: cq.peek() std::endl; // 输出 20 return 0; } 2.链式循环队列 采用循环链表的方式来实现循环队列 #include iostream class Node { public: int data; Node* next; Node(int value) : data(value), next(nullptr) {} }; class CircularQueue { private: Node* front; // 队列头指针 Node* rear; // 队列尾指针 int count; // 当前队列中的元素数量 public: CircularQueue() : front(nullptr), rear(nullptr), count(0) {} ~CircularQueue() { while (!is_empty()) { dequeue(); } } // 入队操作 void enqueue(int item) { Node* newNode new Node(item); if (is_empty()) { front rear newNode; rear-next front; // 形成循环 } else { rear-next newNode; rear newNode; rear-next front; // 形成循环 } count; } // 出队操作 int dequeue() { if (is_empty()) { std::cout Queue is empty! std::endl; return -1; // 或抛出异常 } int item front-data; Node* temp front; if (front rear) { // 只有一个元素 front rear nullptr; } else { front front-next; rear-next front; // 更新尾指针 } delete temp; count--; return item; } // 获取队头元素 int peek() const { if (is_empty()) { std::cout Queue is empty! std::endl; return -1; // 或抛出异常 } return front-data; } // 检查队列是否为空 bool is_empty() const { return count 0; } // 获取当前队列大小 int size() const { return count; } }; int main() { CircularQueue cq; // 创建一个循环队列 cq.enqueue(10); cq.enqueue(20); cq.enqueue(30); std::cout Front element: cq.peek() std::endl; // 输出 10 std::cout Dequeued: cq.dequeue() std::endl; // 输出 10 std::cout Front element after dequeue: cq.peek() std::endl; // 输出 20 cq.enqueue(40); // 尝试入队一个新元素 std::cout Front element after enqueue: cq.peek() std::endl; // 输出 20 return 0; } 四、算法专题 队列是一种重要的数据结构广泛应用于计算机科学的各个领域。理解队列的基本概念、操作和实现方式对于学习数据结构和算法非常重要。 1.队列的应用场景 任务调度操作系统中的进程调度。 打印队列管理打印任务的顺序。 广度优先搜索BFS图算法中的节点访问顺序。 消息队列在分布式系统中传递消息。 2.队列的相关算法  循环队列通过循环数组或链表实现避免了空间浪费。 优先队列每个元素都有一个优先级出队时优先级高的元素先被移除。 阻塞队列在多线程环境中使用支持线程安全的入队和出队操作。 3.算法题推荐 模拟队列232. 用栈实现队列 - 力扣LeetCode class MyQueue {stackint v; public:MyQueue() {}void push(int x) {v.push(x);}int pop() {if(empty())return NULL;stackint ts;while (!v.empty()) {ts.push(v.top());v.pop();}int ans ts.top();ts.pop();while (!ts.empty()) {v.push(ts.top());ts.pop();}return ans;}int peek() {if(empty())return NULL;stackint ts v;while (ts.size() ! 1) {ts.pop();}//就剩栈底了return ts.top();}bool empty() {return v.empty();} };/*** Your MyQueue object will be instantiated and called as such:* MyQueue* obj new MyQueue();* obj-push(x);* int param_2 obj-pop();* int param_3 obj-peek();* bool param_4 obj-empty();*/ 239. 滑动窗口最大值 - 力扣LeetCode双端队列239. 滑动窗口最大值 - 力扣LeetCode class Solution { public://时间复杂度O((n-k)*k)vectorint maxSlidingWindow(vectorint nums, int k) {vectorint ret;if (nums.size() 0)return ret;dequeint q; //存储位置for (int i 0; i nums.size(); i) {while (!q.empty() nums[i] nums[q.back()]) {q.pop_back();}q.push_back(i);if (k i - q.front()) q.pop_front();//超出长度if (i k - 1) ret.push_back(nums[q.front()]);}return ret;} }; 优先队列(堆)23. 合并 K 个升序链表 - 力扣LeetCode class Solution { public:struct Status {int val;ListNode *ptr;bool operator (const Status rhs) const {return val rhs.val;}};priority_queue Status q;ListNode* mergeKLists(vectorListNode* lists) {for (auto node: lists) {if (node) q.push({node-val, node});}ListNode head, *tail head;while (!q.empty()) {auto f q.top(); q.pop();tail-next f.ptr; tail tail-next;if (f.ptr-next) q.push({f.ptr-next-val, f.ptr-next});}return head.next;} };感谢大家 
文章转载自:
http://www.morning.kfwrq.cn.gov.cn.kfwrq.cn
http://www.morning.rhpgk.cn.gov.cn.rhpgk.cn
http://www.morning.qcfcz.cn.gov.cn.qcfcz.cn
http://www.morning.dpbgw.cn.gov.cn.dpbgw.cn
http://www.morning.jtsdk.cn.gov.cn.jtsdk.cn
http://www.morning.qgdsd.cn.gov.cn.qgdsd.cn
http://www.morning.ryglh.cn.gov.cn.ryglh.cn
http://www.morning.qdcpn.cn.gov.cn.qdcpn.cn
http://www.morning.spghj.cn.gov.cn.spghj.cn
http://www.morning.rjnky.cn.gov.cn.rjnky.cn
http://www.morning.jycr.cn.gov.cn.jycr.cn
http://www.morning.crhd.cn.gov.cn.crhd.cn
http://www.morning.kdbcx.cn.gov.cn.kdbcx.cn
http://www.morning.wmhqd.cn.gov.cn.wmhqd.cn
http://www.morning.kxryg.cn.gov.cn.kxryg.cn
http://www.morning.mrlkr.cn.gov.cn.mrlkr.cn
http://www.morning.qhnmj.cn.gov.cn.qhnmj.cn
http://www.morning.rpgdd.cn.gov.cn.rpgdd.cn
http://www.morning.qkzdc.cn.gov.cn.qkzdc.cn
http://www.morning.npcxk.cn.gov.cn.npcxk.cn
http://www.morning.mqwnz.cn.gov.cn.mqwnz.cn
http://www.morning.fqyqm.cn.gov.cn.fqyqm.cn
http://www.morning.lptjt.cn.gov.cn.lptjt.cn
http://www.morning.sypby.cn.gov.cn.sypby.cn
http://www.morning.qwmdx.cn.gov.cn.qwmdx.cn
http://www.morning.gqwbl.cn.gov.cn.gqwbl.cn
http://www.morning.jwdys.cn.gov.cn.jwdys.cn
http://www.morning.qichetc.com.gov.cn.qichetc.com
http://www.morning.gwjqq.cn.gov.cn.gwjqq.cn
http://www.morning.wcjk.cn.gov.cn.wcjk.cn
http://www.morning.qyhcg.cn.gov.cn.qyhcg.cn
http://www.morning.zcfmb.cn.gov.cn.zcfmb.cn
http://www.morning.pycpt.cn.gov.cn.pycpt.cn
http://www.morning.fyzsq.cn.gov.cn.fyzsq.cn
http://www.morning.mprpx.cn.gov.cn.mprpx.cn
http://www.morning.rwrn.cn.gov.cn.rwrn.cn
http://www.morning.kxltf.cn.gov.cn.kxltf.cn
http://www.morning.mnjyf.cn.gov.cn.mnjyf.cn
http://www.morning.qqhfc.cn.gov.cn.qqhfc.cn
http://www.morning.frqtc.cn.gov.cn.frqtc.cn
http://www.morning.mpszk.cn.gov.cn.mpszk.cn
http://www.morning.nlbhj.cn.gov.cn.nlbhj.cn
http://www.morning.pwggd.cn.gov.cn.pwggd.cn
http://www.morning.nktgj.cn.gov.cn.nktgj.cn
http://www.morning.qszyd.cn.gov.cn.qszyd.cn
http://www.morning.zlwg.cn.gov.cn.zlwg.cn
http://www.morning.nynlf.cn.gov.cn.nynlf.cn
http://www.morning.kqbzy.cn.gov.cn.kqbzy.cn
http://www.morning.qbjrf.cn.gov.cn.qbjrf.cn
http://www.morning.ndxrm.cn.gov.cn.ndxrm.cn
http://www.morning.yrpg.cn.gov.cn.yrpg.cn
http://www.morning.wtnwf.cn.gov.cn.wtnwf.cn
http://www.morning.ckbmz.cn.gov.cn.ckbmz.cn
http://www.morning.gbfzy.cn.gov.cn.gbfzy.cn
http://www.morning.ljzss.cn.gov.cn.ljzss.cn
http://www.morning.nqlkb.cn.gov.cn.nqlkb.cn
http://www.morning.kwhrq.cn.gov.cn.kwhrq.cn
http://www.morning.zqfjn.cn.gov.cn.zqfjn.cn
http://www.morning.dpqqg.cn.gov.cn.dpqqg.cn
http://www.morning.wxgd.cn.gov.cn.wxgd.cn
http://www.morning.jikuxy.com.gov.cn.jikuxy.com
http://www.morning.bgkk.cn.gov.cn.bgkk.cn
http://www.morning.fksrg.cn.gov.cn.fksrg.cn
http://www.morning.rljr.cn.gov.cn.rljr.cn
http://www.morning.wmlby.cn.gov.cn.wmlby.cn
http://www.morning.jzlfq.cn.gov.cn.jzlfq.cn
http://www.morning.gmplp.cn.gov.cn.gmplp.cn
http://www.morning.xqbgm.cn.gov.cn.xqbgm.cn
http://www.morning.pszw.cn.gov.cn.pszw.cn
http://www.morning.rgsgk.cn.gov.cn.rgsgk.cn
http://www.morning.xnqjs.cn.gov.cn.xnqjs.cn
http://www.morning.paoers.com.gov.cn.paoers.com
http://www.morning.taipinghl.cn.gov.cn.taipinghl.cn
http://www.morning.mjtgt.cn.gov.cn.mjtgt.cn
http://www.morning.ljxps.cn.gov.cn.ljxps.cn
http://www.morning.kdnrp.cn.gov.cn.kdnrp.cn
http://www.morning.monstercide.com.gov.cn.monstercide.com
http://www.morning.jcfdk.cn.gov.cn.jcfdk.cn
http://www.morning.qnzgr.cn.gov.cn.qnzgr.cn
http://www.morning.wgzgr.cn.gov.cn.wgzgr.cn
http://www.tj-hxxt.cn/news/272517.html

相关文章:

  • 淘宝客做网站还是做app常见的简单的网站制作
  • 做门图网站网页设计与制作教程专题分析
  • asp.net mvc5网站开发西安SEO网站排名
  • 如何选择赣州网站建设电脑培训速成班多少钱
  • 网站推广的优劣网站开发协议模板
  • 公司做两个网站百度推广个人怎么开户
  • 八里庄街道网站建设长沙网站推广合作
  • 会展官方网站建设专业做淘宝网站推广
  • xss网站怎么搭建北京网站后台培训
  • pdf 网站建设张家界网站建设app
  • 信阳电子商务平台网站建设深圳做app网站的公司哪家好
  • 做淘宝客的网站所需空间羽毛球最新赛事
  • 网站互动栏目设置做盗版频网站
  • 有企业邮箱案例的网站动漫制作专业电脑配置
  • 家具网站首页设计互联网建站
  • 网站开发的心得与体会网站建设标准流程
  • 网站搭建修改收费依据阿里云服务器挂游戏
  • 推荐邯郸网站建设南京优质网站建设方案
  • 怎样创建网站以及建站流程是什么网站换域名了怎么办
  • 网站建设 文件源代码约定农业推广专业
  • 平面设计专业网站商城网站建设用乐云seo系统
  • 帝国网站免费模板hao123网站源码制作2015最新仿
  • 漳州博大网站建设装潢设计师要学什么
  • 高端品销售网站wordpress 错误代码500
  • 建立网站的链接结构有哪几种形式怎么去掉2345网址导航
  • 黑龙江网上建设局报建网站哪些网站可以做代理商
  • 网站前端是做网站吗重庆网络营销与网络广告
  • 手机 网站 开发东莞网站公司
  • 网站后台 用什么编写win主机伪静态规则 wordpress
  • 360站长工具seo网站域名所有权