算法导论2nd 10.1-7

为什么80%的码农都做不了架构师?>>>   hot3.png

思路:两个队列q1和q2,两个队列指针pusher和poper分别指向q1和q2,push时调用pusher->enqueue,然后将poper里的元素全部dequeue并enqueue到pusher,最后交换pusher和poper。

#include <iostream>class Queue
{int *array;int head, tail, size;Queue(Queue &&q) = delete;Queue(const Queue &q) = delete;Queue &operator=(const Queue &q) = delete;public:Queue(int n){size = n + 1;array = new int [size];head = 0;tail = 0;}~Queue(){if (array){delete [] array;array = NULL;size = -1;head = -1;tail = -1;}}bool enqueue(int x){if (full())return false;array[tail++] = x;if (tail >= size)tail = 0;return true;}bool dequeue(int &res){if (empty())return false;res = array[head++];if (head >= size)head = 0;return true;}bool empty(){return head == tail;}bool full(){return (tail + 1) % size == head;}
};class Stack
{Queue q1, q2, *pusher, *poper;int size;public:Stack(int n) : q1(n), q2(n){pusher = &q1;poper = &q2;}bool push(int x){if (poper->full())return false;pusher->enqueue(x);while (poper->dequeue(x))pusher->enqueue(x);Queue *tmp = pusher;pusher = poper;poper = tmp;return true;}bool pop(int &res){return poper->dequeue(res);}
};int main()
{int t;Queue queue(4);queue.enqueue(1);queue.dequeue(t);queue.enqueue(2);queue.dequeue(t);queue.enqueue(3);queue.enqueue(4);queue.enqueue(5);queue.enqueue(6);queue.enqueue(7);while (queue.dequeue(t))std::cout << t << std::endl;queue.enqueue(8);queue.enqueue(9);queue.enqueue(10);queue.enqueue(11);queue.enqueue(12);while (queue.dequeue(t))std::cout << t << std::endl;Stack stack(4);stack.push(1);stack.push(2);stack.push(3);stack.push(4);stack.push(5);while(stack.pop(t))std::cout << t << std::endl;return 0;
}

 

转载于:https://my.oschina.net/guzhou/blog/3049506

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/536462.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

阿里云Windows2012 R2服务器IPV6配置记录

要上苹果APP&#xff0c;则必须要支持IPV6和HTTPS&#xff0c;阿里云本身没有开放IPV6地址。因此需要进行IPV6的相关配置。查了很多IPV6的配置资料&#xff0c;最终选择用HE进行IPV6设置。在这过程中遇到一些问题&#xff0c;以记录下来以备注。 1、IPV6 Tunnel Broker设置 在H…

mycat 1.6.5 for mysql 8分表攻略

2019独角兽企业重金招聘Python工程师标准>>> 简述 mycat 对于 mysql 的支持有版本要求&#xff0c;目前 1.6.5 不支持 mysql 8.0 版本。因为mysql 8.0 的加密方式发生了变化。 mycat 1.6.5 连接 mysql 8.0 的两个方式 mysql 8.0 采用兼容方式&#xff0c;&#xff0…

搭建gitlab及部署gitlab-runner

2019独角兽企业重金招聘Python工程师标准>>> 1、搭建gitlab,之前yum安装gitlab,安装后一直报502错误,网上百度试过还是无法使用; 所以这次部署在docker里面;如下命令&#xff1a; docker run --detach --hostname gitlab.forebix.com --publish 4433:443 --publish …

inux CentOS 7 修改内核启动默认顺序

2019独角兽企业重金招聘Python工程师标准>>> inux CentOS 7 修改内核启动默认顺序 2018年12月07日 09:53:32 XueShengke 阅读数&#xff1a;781 转载于&#xff1a;21运维 Linux CentOS 7.X 如何修改内核启动默认顺序 我们知道&#xff0c;centos 6.x是通过/etc/gr…

锁底层之内存屏障与原语指令

Java内存模型1&#xff0e;工作内存和主内存Java内存模型规定所有的变量都存储在主内存中&#xff08;JVM内存的一部分&#xff09;&#xff0c;每个线程有自己独立的工作内存&#xff0c;它保存了被该线程使用的变量的主内存复制。线程对这些变量的操作都在自己的工作内存中进…

微信点击链接,用默认浏览器中打开指定网址链接!

2019独角兽企业重金招聘Python工程师标准>>> 最近有客户咨询&#xff0c;自己的链接在微信种推广&#xff0c;经常会被无缘无故封杀&#xff0c;有没有一种功能&#xff0c;用户在微信中点击我们推广的链接&#xff0c;可以自动强制跳转到手机默认浏览器中打开指定的…

关于HTTP协议,一篇就够了

原文地址&#xff1a;https://www.cnblogs.com/ranyonsue/p/5984001.html HTTP简介 HTTP协议是Hyper Text Transfer Protocol&#xff08;超文本传输协议&#xff09;的缩写,是用于从万维网&#xff08;WWW:World Wide Web &#xff09;服务器传输超文本到本地浏览器的传送协议…

Ajax_Apache访问资源文件的权限配置、资源存放路径配置、配置虚拟主机、动态网站静态网站区别...

1、配置资源的访问权限 修改配置文件&#xff1a;httpd.conf 文件 改完之后要重启 2、切换资源默认存放目录www 修改配置文件httpd.conf 文件中的存放目录 3、Apache是否能够同时支持多个站点 Apache能否支持通过不同的域名访问不同的站点 可以 做法&#xff1a;配置虚拟主机…

web安全之文件上传漏洞攻击与防范方法

2019独角兽企业重金招聘Python工程师标准>>> 一、 文件上传漏洞与WebShell的关系 文件上传漏洞是指网络攻击者上传了一个可执行的文件到服务器并执行。这里上传的文件可以是木马&#xff0c;病毒&#xff0c;恶意脚本或者WebShell等。这种攻击方式是最为直接和有效的…

Rabbit and Grass【博弈】

Rabbit and Grass Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 4728 Accepted Submission(s): 3592 Problem Description 大学时光是浪漫的&#xff0c;女生是浪漫的&#xff0c;圣诞更是浪漫的&#xff…

苹果可弯曲屏幕新专利获准,折叠iPhone最快2020年现身?

当三星Galaxy Fold、华为Mate X等折叠手机陆续问世时&#xff0c;所有果粉都想问一个问题折叠iPhone在哪里&#xff1f;就在最近有报导指出&#xff0c;苹果获得一项关于折叠屏幕的新专利。新专利出炉&#xff0c;但折叠iPhone还要再等等。本周二&#xff0c;美国专利与商标局授…

Google File System 学习笔记

GFS翻译&#xff1a;https://www.cnblogs.com/cxxjohnson/p/4984309.html 一、GFS架构&#xff1a; 二、保存文件的方式 1、保存小文件&#xff1a;磁盘中分块&#xff0c;每个block大小为1024Byte,每个文件的索引由块号偏置组成 2、保存大文件&#xff1a;把block换成chunk,每…

探讨奇技淫巧

2019独角兽企业重金招聘Python工程师标准>>> 探讨奇技淫巧 起源 在工程实践中&#xff0c;我们常常会遇到一些奇技淫巧。所谓奇技淫巧&#xff0c;就是官方在设计或者实践中并未想象出的代码风格或者使用场景。其实也就是类似于 react 的 hoc,本来源自于社区&#x…

Web框架之Django_01初识(三大主流web框架、Django安装、Django项目创建方式及其相关配置、Django基础三件套:HttpResponse、render、redirect)...

摘要&#xff1a; Web框架概述 Django简介 Django项目创建 Django基础必备三件套(HttpResponse、render、redirect) 一、Web框架概述&#xff1a; Python三大主流Web框架&#xff1a; Django&#xff1a;大而全&#xff0c;自带了很多功能模块&#xff0c;类似于航空母舰&am…

Bone Collector【01背包】

F - Bone Collector HDU - 2602 Many years ago , in Teddy’s hometown there was a man who was called “Bone Collector”. This man like to collect varies of bones , such as dog’s , cow’s , also he went to the grave … The bone collector had a big bag wit…

Gamma阶段第八次scrum meeting

每日任务内容 队员昨日完成任务明日要完成的任务张圆宁#91 用户体验与优化https://github.com/rRetr0Git/rateMyCourse/issues/91&#xff08;持续完成&#xff09;#91 用户体验与优化https://github.com/rRetr0Git/rateMyCourse/issues/91牛宇航#86 重置密码的后端逻辑https:/…

索引失效

转载于:https://blog.51cto.com/11009785/2406488

WordPress忘记密码的5种解决方法

为什么80%的码农都做不了架构师&#xff1f;>>> 无意中忘记wordpress的密码了&#xff0c;恰巧在后台又没来得及设置邮件&#xff0c;只好四处苦寻解决办法&#xff0c;还好总算找到了…… 1. WordPress内置的找加密码方法 如果你的admin帐户的电子邮件地址是正确的…

在linux上执行.net Console apps

为什么80%的码农都做不了架构师&#xff1f;>>> 有个程序&#xff0c;在.net下写了半天&#xff0c;总算跑起来了&#xff0c;发现有个问题&#xff0c;在windows上不好弄&#xff0c;而同事前一段时间已经有Linux下的解决方法了&#xff0c;于是想直接将.net程序放…

Android4.0设置界面修改总结

为什么80%的码农都做不了架构师&#xff1f;>>> 笔者前段时间完成设置的圆角item风格的修改&#xff0c;但最近&#xff0c;客户新增需求&#xff0c;想把设置做成Tab风格的&#xff0c;没办法&#xff0c;顾客就是上帝&#xff0c;咱得改啊。今天算是初步改完了&a…