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

沭阳建设局网站软件项目管理课程

沭阳建设局网站,软件项目管理课程,国外电商网站设计欣赏,网站布局类型目录​​​​​​​ 前言 1、栈 2、队列 2.1、实现队列 2.2、循环队列 前言 上一篇中我们介绍了数据结构基础中的《动态数组》#xff0c;本篇我们继续来学习两种基本的数据结构——栈和队列。 1、栈 特点#xff1a;栈也是一种线性结构#xff0c;相比数组#xff…目录​​​​​​​ 前言 1、栈 2、队列 2.1、实现队列 2.2、循环队列 前言 上一篇中我们介绍了数据结构基础中的《动态数组》本篇我们继续来学习两种基本的数据结构——栈和队列。 1、栈 特点栈也是一种线性结构相比数组栈对应的操作是数组的子集只能从一端添加元素也只能从同一端取出元素这一端称为栈顶。栈是一种后进先出的数据结构即Last In First Out(LIFO)。 上面说到栈对应的操作是数组的子集因此我们就基于上一篇中实现的动态数组来快速的实现一个栈。 首先定义一个接口定义相关功能方法 然后让栈来实现接口中的具体功能 import arr.Array;public class ArrayStackE implements StackE {ArrayE array;public ArrayStack(int capacity) {array new Array(capacity);}public ArrayStack() {array new Array();}public int getCapacity() {return array.getCapacity();}Overridepublic int getSize() {return array.getSize();}Overridepublic boolean isEmpty() {return array.isEmpty();}Overridepublic void push(E e) {array.addLast(e);}Overridepublic E pop() {return array.removeLast();}Overridepublic E peek() {return array.getLast();}Overridepublic String toString() {StringBuilder res new StringBuilder();res.append(Stack).append([);for (int i 0; i array.getSize(); i) {res.append(array.get(i));if (i ! array.getSize() - 1) {res.append(,);}}res.append(] Top);return res.toString();} } 写一个测试方法 执行结果如下 2、队列 2.1、实现队列 队列也是一种线性结构相比数组队列对应的操作也是数组的子集队列只能从一端队尾添加元素只能从另一端队首取出元素。队列是一种先进先出的数据结构先到先得即First In First OutFIFO。 由于队列对应的操作同样是数组的子集那么我们让然也是基于上一篇中实现的动态数组来快速的实现一个栈。  定义一个接口定义相关功能方法 然后让队列来实现接口中的具体功能 import arr.Array;public class ArrayQueueE implements QueueE {private ArrayE array;public ArrayQueue(int capacity) {array new Array(capacity);}public ArrayQueue(){array new Array();}public int getCapacity(){return array.getCapacity();}Overridepublic int getSize() {return array.getSize();}Overridepublic boolean isEmpty() {return array.isEmpty();}Overridepublic void enqueue(E e) {array.addLast(e);}Overridepublic E dequeue() {return array.removeFirst();}Overridepublic E getFront() {return array.getFirst();}Overridepublic String toString() {StringBuilder res new StringBuilder();res.append(Queue:).append(Front [);for (int i 0; i array.getSize(); i) {res.append(array.get(i));if (i ! array.getSize() - 1) {res.append(,);}}res.append(] tail);return res.toString();} } 同样的写一个测试类 执行结果如下 2.2、循环队列 初始时front和tail都是指向下标为0的位置当有元素入队时tail指向该元素的下一个位置(tail1)%capacity元素出队时front向后移动一个位置因此循环队列有元素出队时无需让所有的元素都移动一个位置只需让front的指向移动一次即可示意图如下 ​​​​​​​ 下面我们来通过代码看一下循环队列该怎么实现 public class LoopQueueE implements QueueE {private E[] data;private int front, tail;private int size;public LoopQueue(int capacity) {data (E[]) new Object[capacity 1];front 0;tail 0;size 0;}public LoopQueue() {this(10);}public int getCapacity() {return data.length - 1;}Overridepublic int getSize() {return size;}Overridepublic boolean isEmpty() {return front tail;}Overridepublic void enqueue(E e) {if ((tail 1) % data.length front) {resize(getCapacity() * 2);}data[tail] e;tail (tail 1) % data.length;size;}private void resize(int newCapacity) {E[] newdata (E[]) new Object[newCapacity 1];for (int i 0; i size; i) {newdata[i] data[(i front) % data.length];}data newdata;front 0;tail size;}Overridepublic E dequeue() {if (isEmpty()) {throw new IllegalArgumentException(队列为空);}E ret data[front];data[front] null;front (front 1) % data.length;size--;if (size getCapacity() / 4 getCapacity() / 2 ! 0) {resize(getCapacity() / 2);}return null;}Overridepublic E getFront() {if (isEmpty()) {throw new IllegalArgumentException(队列为空);}return data[front];}Overridepublic String toString() {StringBuilder res new StringBuilder();res.append(String.format(Queue: size%d,capacity%d\n, size, getCapacity())).append(front [);for (int i front; i ! tail; i (i 1) % data.length) {res.append(data[i]);if ((i1)%data.length ! tail) {res.append(,);}}res.append(] tail);return res.toString();} } 同样的测试程序 执行结果如下 好了关于栈和队列的内容就说这么多吧咱们下期再会 祝工作顺利
http://www.dnsts.com.cn/news/12560.html

相关文章:

  • 建设视频网站设计意义成都网站建设招聘
  • 国外大气网站欣赏网站开发课程教学目标
  • 功能型网站多少钱最近的战争新闻大事
  • 我想弄个自己的卖货网站怎样做惠城网站设计
  • 源代码管理网站晋中市建设局网站
  • 沈阳网站制作系统互联网产品代理项目
  • 重庆网站建设重庆网站建设公司网站建设网站代码加密
  • 怎么搜索整个网站国家医保服务平台
  • 网站的制作方法wordpress 同步预览
  • 做网站云服务期做最漂亮的网站
  • 建站宝盒建网站成都网站建设哪里好
  • 网络营销导向网站建设的基础是什么动画设计电脑配置要求
  • 网站建设时间怎么查保山网站建设服务
  • 广州 建设 招聘信息网站网络营销概述ppt
  • 怎么用linux做网站英文版网站建设策划方案
  • 网站正在建设中 英语翻译海南网站建设设计
  • 广州h5设计网站公司简单好看的版面设计图
  • 东莞正规的人才市场aso推广优化
  • 龙岩做网站公司有哪些网站软件开发招聘
  • 沈阳网站建设联系方式360建筑网忘记登入密码了怎么办
  • WordPress搬家注意事项唐山网站建设优化
  • 网站后台流程图南京工程建设招聘信息网站
  • 企业网站管理源码交换链接营销
  • 做权重网站韶关手机网站建站
  • 做网站的图片取材wordpress建网站的优点
  • 怎样做ppt建网站install wordpress
  • 沈阳网站建设seo优化网站制作论文答辩
  • 甘肃住房和城乡建设部网站富阳做网站
  • asp.net网站建设项目实战 董义革秦皇岛吧 百度贴吧
  • 企业能建站吗影视网站视频接口怎么做