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

杭州建设职业学校网站开发软件需要学什么专业

杭州建设职业学校网站,开发软件需要学什么专业,长沙网站开发,wordpress hello dolly目录​​​​​​​ 前言 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/193304.html

相关文章:

  • 地推是什么意思百度seo优化排名软件
  • 企业网站个人备案吗成都网站制作售后
  • 网站建设的有什么需求seo自动点击排名
  • 广东企业网站模板设计网站建设域名注册免费
  • 如何在公司服务器建个内部 网站微网站怎么免费做
  • 网站建设属于哪个税收服务编码如何点击优化神马关键词排名
  • 优秀的网站建设江门网页设计培训价格
  • 网站开发前如何配置电脑制作网站主题
  • 网站建设全过程WordPress营销推广返佣插件
  • 展览网站制作简单网页设计模板素材
  • 广州关于进一步免费发布网站seo外链
  • 肥西县建设局资询网站网站优化都是怎么做的
  • 网站首页标题字数一家专门做原型的网站
  • 网站建设get你科技小巨人申报条件
  • 承德做网站设计的中介网站建设
  • 武夷山建设局网站django和WordPress哪个好
  • 青岛建设公司网站怎么查看网站的pv uv
  • 四川住房城乡建设部网站可以做哪些网站有哪些内容吗
  • 网站做等保是什么意思wordpress只显示首页
  • cms 网站后台网站建设公司哪个好呀
  • 营销型网站重要特点是?360免费wifi怎么使用
  • 网站建设对数据库有何要求免费的网站域名申请
  • 网站建设选青岛的公司好不好苏州网站建设学费
  • 手机网站制作织梦网站模板广告关键词
  • 旅游 网站开发的项目描述网站建设淮安
  • 微信建设小网站链接国外网站问题
  • 常州网站建设要多少钱短链
  • 传媒网站建设价格深圳凡科网站建设
  • h5手机网站发展趋势网站服务内容怎样选
  • 教人做衣服的网站电商公司做网站