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

深圳宝安区住房和建设局网站开发网站公司地址

深圳宝安区住房和建设局网站,开发网站公司地址,专业建设报告,动漫专业就业前景栈和队列 栈stack 栈也是一种线性结构相比数组#xff0c;栈对应的操作数数组的子集只能从一端添加元素#xff0c;也只能从一端取出元素这一端称为栈顶 栈是一种后进先出的数据结构Last in Firt out(LIFO)在计算机的世界里#xff0c;栈拥有者不可思议的作用 栈的应用 …栈和队列 栈stack 栈也是一种线性结构相比数组栈对应的操作数数组的子集只能从一端添加元素也只能从一端取出元素这一端称为栈顶 栈是一种后进先出的数据结构Last in Firt out(LIFO)在计算机的世界里栈拥有者不可思议的作用 栈的应用 无处不在的undo操作(撤销) 沉迷 学习 不法 程序调用的系统栈 从A函数调用B函数B函数在调用C函数A2表示进行到A函数的第二行 当一个子过程可以自动回到上层调用继续执行的原因因为有系统栈去记录每一个中断的点。子过程的调用实现机理就是如此。对于递归的理解会在后续介绍。 栈的实现 Stack void push(E)E pop()E peek()int getSize()boolean isEmpty() 从用户的角度看支持这些操作就好 具体底层实现用户不关心 实际底层有多种实现方式 采用多态的方式 public Interface StackE{int getSize();boolean isEmpty();void push(E e);E pop();E peek(); } public class ArrayStackE implements StackE{ArrayE array;public ArrayStack(int getCapacity){array new Array(capacity);}public ArrayStack(){array new Array();}Overrideint getSize(){return array.getSise; }Overrideboolean isEmpty(){return array.isEmpty();}Overridepublic int getCapacity(){return array.getCapacity();}Overridevoid push(E e){arraty.addLasy(e);}OverrideE pop(){array.removeLast();}OverrideE peek(){return array.getLast();}Overridepublic String toString(){StringBuilder res new StringBuilder();res.append(Stack: );res.append([]);for(int i 0 ; i arr.getSize();i){res.append(array.get(i));if(i!array.getSize()-1)res.append(, );}res.append(] top);return res.toString();} } 对于array新加如下方法 public E getLast(){return get(size-1); } public E getFirst(){return get(0); }栈的另一个应用括号匹配 这是二十家大公司对于该题的面试形式 栈顶元素反映了在嵌套的层次关系中最近的需要匹配的元素 Class Solution{public boolean isValid(String s){StackCharacter stack new Stack();for(int i 0 ; i s.length();i)char c s.charAt(i);if(c(||c[||c{)stack.push(c);else{if(stack.isEmpty())return false;char topChar stack.pop();if(c)topChar!()return false;if(c]topChar![)return false;if(c}topChar!{)return false;}return stack.isEmpty();} }队列 队列也是一种线性结构 相比数组队列对应的操作是数组的子集 只能从一端添加元素从另一端取出元素 队列是一种先进先出的数据结构先到先得 First I First Out(FIFO) QueueE - void enqueue(E)//入队 - E dequeue()//出队 - E getFront()//获取队首元素 - int getSize() - boolean isEmpty()//是否为空public interface QueueE{void enqueue(E)//入队E dequeue()//出队E getFront()//获取队首元素int getSize()boolean isEmpty()//是否为空 } public class ArrayQueueE implements QueueE{private ArrayE array;public ArrayQueue(int capacity){array new Array(capacity);}public ArrayQueue(){array new Array();}Overridepublic int getSize(){return array.getSize();}Overridepublic int isEmpty(){return array.isEmpty();}Overridepublic int getCapacity(){return array.getCapacity();}Overridepublic int enqueue(){array.addLast(e);}Overridepublic int dequeue(){return array.removeFirst();}Overridepublic E getFront(){return array.getFirst();}Overridepublic String toString(){StringBuilder res new StringBuilder();res.append(Queue: );res.append(front [);for(int i 0 ; i arr.getSize();i){res.append(array.get(i));if(i!array.getSize()-1)res.append(, );}res.append(] tail);return res.toString();} }循环队列 数组队列的问题 tail1)%cfront 队列满 对于循环我们可以查看自己的钟表就能理解了循环的意思。形成一个环大小由数组容积决定。 public class LoopQueueE implements QueueE{private E[] data;private int front,tail;private int size;public LoopQueue(int capacity){data (E[]) new Obejct[capacity1];front 0;tail 0;size 0;}public LoopQueue(){this(10);}public int getCapacity(){return data.length-1;}Overridepublic boolean isEmpty(){return fronttail;}Overridepublic String toString(){StringBuilder res new StringBuilder();res.append(Queue: size %d, capacity %d,size,getCapacity());res.append(front [);for(int i front ; i ! tail;(i1)%data.length){res.append(array.get(i));if((i1)%data.length!tail)res.append(, );}res.append(] tail);return res.toString();} }循环队列的实现 Overridepublic void enqueue(E e){if((tail1)%data.lengthfront)resize(getCpacity()*2);data[tail] e;tail (tail1)%data.length;size;}Overridepublic E dequeue(){if(isEmpty())throw new IllegalArgumentException(cannot dequeue from an empty queue);E ret data[front];data[front] null;front (front1)%data.length;size--;if(size getCapacity()/4resize(getCapacity()/2!0)resize(getCapacity()/2);return ret;}private void resize(int newCapacity){E[] newData (E[]) new Object[newCapacity1];for(int i 0; i size ;i){newData[i] data[(ifront) % data.length];}data newData;front 0;tail size;}Overridepublic E getFront(){if(isEmpty())throw new IllegalArgumentException(from an empty queue);return data[front];}Overridepublic String toString(){StringBuilder res new StringBuilder();res.append(Queue: size %d, capacity %d,size,getCapacity());res.append(front [);for(int i front ; i ! tail;(i1)%data.length){res.append(array.get(i));if((i1)%data.length!tail)res.append(, );}res.append(] tail);return res.toString();}数组队列和循环队列的比较 栈和队列习题集 使用动态数组实现栈和队列但是现在如果没有这种结果的话。我们需要用栈应该著怎么实现呢 使用队列实现栈 使用栈实现队列
http://www.hkea.cn/news/14443503/

相关文章:

  • 网站建设网站公司哪家好建工网校官网app
  • 国内做的好看的网站网站后台显示不了
  • 重庆无障碍网站建设怎么看网站被惩罚
  • 苏州企业网站建设公司价格h5网站设计
  • 建立平台网站需要花多少钱男女做羞羞的事视频网站
  • 手机app网站开发二手书网站建设的目的
  • 亚运村网站建设美食美客网站建设
  • 手机网站html模板下载精品网站建
  • wordpress做图片站的可能性用focusky做h5微网站
  • 计算机毕设代做网站动漫网站开发研究内容
  • 做网站怎么样才能排在首页建设银行平潭招聘网站
  • 网站建设需要啥武进网站建设多少钱
  • seo网站优化插件tag改为静态wordpress
  • 网站热力图工具奇搜建设辽沈阳网站
  • 微网站建设是什么安阳论坛最新消息
  • 兼职开发网站开发企业制作网站
  • 简单的明星个人网站建设论文网站是如何做的好
  • 怎么把别人网站模板下载出来展会宣传推广计划
  • 公司网站主页怎么做电力公司建设安全文化
  • 网站建设费用会计分录嘉瑞建设有限公司网站
  • 深圳手机建站模板网站色调选择
  • 网站建设公司江苏做设计一般用什么素材网站
  • 建设企业网站小微如何找到能够建设网站的人
  • asp手机网站开发教程商务网站建设内容
  • 创建一个网站流程网站技术支持 新锐网络
  • 长春网站制作培训做企业网站用什么
  • 天津建设银行招聘网站学校网站建设制度
  • 手机网站建设的图片北京做网站公司有哪些
  • 网站制作设计方案百度推广渠道
  • 中国移动官方网站官网后盾网原创实战网站建设教程1-15