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

南城区做网站Wordpress上传万网空间

南城区做网站,Wordpress上传万网空间,江苏建设教育培训网,郑州有没有厉害的seo♥♥♥♥♥个人主页♥♥♥♥♥ ♥♥♥♥♥数据结构练习题总结专栏♥♥♥♥♥ ♥♥♥♥♥上一章#xff1a;堆的练习题♥♥♥♥♥ 文章目录 1.用队去实现栈1.1问题描述1.2思路分析1.3绘图分析1.4代码实现2.用栈实现队2.1问题描述2.2思路分析1.3绘图分析2.4代码实现 1.用队去实现… ♥♥♥♥♥个人主页♥♥♥♥♥ ♥♥♥♥♥数据结构练习题总结专栏♥♥♥♥♥ ♥♥♥♥♥上一章堆的练习题♥♥♥♥♥ 文章目录 1.用队去实现栈1.1问题描述1.2思路分析1.3绘图分析1.4代码实现2.用栈实现队2.1问题描述2.2思路分析1.3绘图分析2.4代码实现 1.用队去实现栈 1.1问题描述 请你仅使用两个队列实现一个后入先出LIFO的栈并支持普通栈的全部四种操作push、top、pop 和 empty。 实现 MyStack 类 void push(int x) 将元素 x 压入栈顶。 int pop() 移除并返回栈顶元素。 int top() 返回栈顶元素。 boolean empty() 如果栈是空的返回 true 否则返回 false 。 1.2思路分析 首先要实现用队去模拟一个有压栈入栈peek判断栈是否为空这些功能的栈用一个简单的队列是不能实现这个栈的用一个双向队列是可以实现这个栈的但我们今天不用双向队列来实现我们用两个简单队列来实现这个栈。 在分析具体功能怎么实现的我们先确定一些大前提 1.我们先要创建两个简单队列分别设为q1q2 2.确保这两个队列中必须是空的 接下来分析这些功能怎么实现的 1.压栈 大前提在压栈的过程中始终需要保证一个队列中是空目的是为了出栈 在压栈的过程中分两种情况 1.1如果在压栈前两个队列都为空则默认压入q1 1.2如果在压栈前有一个队是空的则压入另一个不为空的队列中 2.出栈 2.1如果两个队列都是空则直接返回false 2.2如果一个队列为空另一个不为空则只需要将不为空队列q1中的size-1个元素压到另一个队列q 2中然后最后不为空的队列q1中剩下的就是出栈的元素 3.peek 3.1如果两个队列都是空则直接返回false 3.2如果一个队列为空另一个不为空则只需要将不为空队列q1中的size-1个元素压到另一个队列q 2中然后最后不为空的队列q1中剩下的元素只需要对它进行peek操作即可 4.empty 两个队列都为空则栈为空。 1.3绘图分析 1.压栈 2.出栈 1.4代码实现 public class QueueAchieveStack {QueueInteger q1;QueueInteger q2;public QueueAchieveStack() {q1 new LinkedList();q2 new LinkedList();}public void push(int x) {//1.两个队列都为空if(empty()) {q1.offer(x);return;}//2.假设只有一个队列为空if(!q2.isEmpty()) {//2.1 q1为空,入队q2q2.offer(x);} else {//2.2 q2为空入队q1q1.offer(x);}}public int pop() {//1.两个队列都是空if(empty()) {return -1;}//2.只有一个队为空if(!q2.isEmpty()) {//2.1 q1队列为空那么将q2中size-1的元素入到q1中最后直接出q2的元素int size1 q2.size();for (int i 0; i size1-1 ; i) {q1.offer(q2.poll());}return q2.poll();} else {//2.2 q2队列为空那么将q1中size-1的元素入到q2中最后直接出q1的元素int size2 q1.size();for (int i 0; i size2-1 ; i) {q2.offer(q1.poll());}return q1.poll();}}public int top() {//1.两个队列都是空if(empty()) {return -1;}//2.只有一个队为空if(!q2.isEmpty()) {//2.1 q1队列为空用一个中间变量tmp来存储每一次从q2出队的元素然后在入q1中int size1 q2.size();int tmp -1;for (int i 0; i size1 ; i) {tmp q2.poll();q1.offer(tmp);}return tmp;} else {//2.2 q2队列为空用一个中间变量tmp来存储每一次从q1出队的元素然后在入q2中int size2 q1.size();int tmp -1;for (int i 0; i size2; i) {tmp q1.poll();q2.offer(tmp);}return tmp;}}public boolean empty() {return q1.isEmpty() q2.isEmpty();} } 2.用栈实现队 2.1问题描述 请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作push、pop、peek、empty 实现 MyQueue 类 void push(int x) 将元素 x 推到队列的末尾 int pop() 从队列的开头移除并返回元素 int peek() 返回队列开头的元素 boolean empty() 如果队列为空返回 true 否则返回 false 2.2思路分析 首先要实现用栈去模拟一个有入队出队peek判断栈是否为空这些功能的队我们用一个栈也是不能模拟出队列的我们用两个栈来模拟这个队列但是这里和队列实现栈的两个队列不一样这里的两个栈我们分别设置一个入队的栈一个专门出队的栈。相比用队列模拟实现栈队列模拟实现栈简单一些。 大前提 1.我们先要创建两个简单栈分别设为s1为入队的栈q2出队的栈 2.确保这两个栈中必须是空的 接下来分析这些功能怎么实现的 1.入队 直接将元素压入s1栈中即可 2.出队 2.1如果s2栈中为空则将s1栈中的元素全部弹出入栈到s2栈中然后再弹出s2中栈顶的元素即可 2.2如果s2栈中不为空则直接弹出s2栈顶的元素 3.peek 3.1如果s2栈中为空则将s1栈中的元素全部弹出入栈到s2栈中然后再peeks2中栈顶的元素即可 3.2如果s2栈中不为空则直接peeks2栈顶的元素 4.empty 直接判断这两个栈是否为空 1.3绘图分析 1.入队 2.出队 2.1 s2为空 2.2 s2不为空 2.4代码实现 public class StackAchieveQueue {StackInteger s1;StackInteger s2;public StackAchieveQueue() {s1 new Stack();s2 new Stack();}public void push(int x) {//直接将s1当作一个入队的操作s1.push(x);}public int pop() {//判断s2中空不空if(!s2.isEmpty()) {//不空直接弹出元素return s2.pop();} else {//空则将s1中的元素全部都入到s2栈中再弹出s2的元素int size s1.size();for(int i0; isize; i) {s2.push(s1.pop());}}return s2.pop();}public int peek() {//判断s2中空不空if(!s2.isEmpty()) {//不空直接返回栈顶元素return s2.peek();} else {//空则将s1中的元素全部都入到s2栈中再返回s2栈顶的元素int size s1.size();for(int i0; isize; i) {s2.push(s1.pop());}}return s2.peek();}public boolean empty() {return s1.isEmpty() s2.isEmpty();} } 结尾希望大家可以给我点点关注点点赞并且在评论区发表你们的想法和意见我会认真看每一条评论你们的支持就是我的最大鼓励。
http://www.zqtcl.cn/news/364708/

相关文章:

  • 视频网站seo实战做企业网站一般用什么服务器
  • icp备案 网站负责人免费直播sdk
  • 网站制作和如何推广动画专业学什么
  • 北京一家专门做会所的网站基于ssh框架的网站开发流程
  • 可以在自己的电脑上做网站吗陕西商城网站建设
  • 深圳网站建设工作室郴州有什么好玩的地方
  • 用dw做的网站怎么发到网上竹妃怎么在公众号里做网站
  • 杭州网站优化搜索黑龙江公共资源交易网官网
  • 动易网站 首页模板修改平台网站是什么
  • 营销网站更受用户欢迎的原因是英文网站的建设意义
  • 学网站建设基础河北省建设网站的网站首页
  • 铜仁市住房和城乡建设部网站延边有没有做网站的
  • 如何做ppt的模板下载网站移动端网站的优点
  • 网站域名没有实名认证微信平台开发技术
  • 自己用电脑做虚拟机怎么建网站个人网站 icp 代理
  • 嘉兴网站建设999 999中国建设招标网是私人网站吗
  • 网站程序设置主页面零基础学wordpress pdf下载
  • 网站代码优化有哪些专做立体化的网站
  • 单县网站定制培训机构专业
  • 网站防红链接怎么做网站建设中提示页面
  • 网站开发和游戏开发的区别互联网服务平台投诉
  • 杭州定制网站公司出名的设计网站
  • 网站查询访问注册电气工程师考试
  • 北京企业网站推广哪家公司好电商平台代运营
  • 北京快速建站模板信息管理系统网站开发
  • 做网站后台需要写代码吗做网站收多少钱
  • 企业手机网站建设咨询为企业设计一个网站
  • 做网站平台成本珠海自适应网站设计
  • 做网站手机端需要pc端的源代码吗经营网站需要注意什么
  • 域名购买之后怎么做网站做+淘宝客最大的网站是叫什么