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

四川省建设人才网站小企业网站建设哪找

四川省建设人才网站,小企业网站建设哪找,百度云怎么做网站,网站建设 考虑1#xff09;队列的定义与实现形式-方式 2#xff09;队列实现思路#xff08;非环形#xff0c;下面进行优化#xff09; 3#xff09;代码实现#xff08;注意并不是环形#xff09; package DataStructures.queue;import java.util.Scanner;/*** 使用数组模拟队列*…1队列的定义与实现形式-方式 2队列实现思路非环形下面进行优化 3代码实现注意并不是环形 package DataStructures.queue;import java.util.Scanner;/*** 使用数组模拟队列*/ public class ArrayQueueDemo {public static void main(String []args){//测试//创建一个队列ArrayQueue arrayQueue new ArrayQueue(3);char key ; //接收用户输入Scanner scanner new Scanner(System.in);boolean loop true;while(loop){System.out.println(s(show):显示队列);System.out.println(e(exit):退出程序);System.out.println(a(add):添加数据到队列);System.out.println(g(get):从队列取出数据);System.out.println(h(head):查看队列头的数据);key scanner.next().charAt(0); //接收一个字符System.out.println();switch (key){case s:arrayQueue.showQueue();break;case a:System.out.println(输入一个数);int value scanner.nextInt();arrayQueue.addQueue(value);break;case g: //取数据try {System.out.println(取出的数是 arrayQueue.getQueue());}catch (Exception e){System.out.println(e.getMessage());}break;case h:try{System.out.println(队列头的数据是arrayQueue.headQueue());}catch (Exception e){System.out.println(e.getMessage());}break;case e://退出scanner.close();loop false;break;default:break;}}System.out.println(程序退出~~~~~);} }//队列类 class ArrayQueue{private int maxSize; //数组的最大容量private int front; //队列头private int rear; //队列尾private int[] arr; //用于存放数据的队列数组//创建队列构造器public ArrayQueue(int arrMaxSize){maxSize arrMaxSize;arr new int[maxSize];front -1; //指向队列头部分析出front指向队列头的前一个位置rear -1; //指向队列尾部指向队列尾的数据即就是队列的最后一个数据}//判断队列是否满public boolean isFull(){return rear maxSize - 1;}//判断队列是否为空public boolean isEmpty(){return rear front;}//添加数据public void addQueue(int n){if (isFull()){System.out.println(队列已满不能加入);return;}rear; //让rear后移arr[rear] n;System.out.println(添加成功);}//获取队列数据出队列public int getQueue(){if (isEmpty()){//通过抛出异常出来throw new RuntimeException(队列为空不能取数据);}front ;return arr[front];}//显示队列的所有数据public void showQueue(){//遍历if (isEmpty()){System.out.println(队列为空);return;}for (int i 0; i maxSize;i){System.out.println(arr[i] arr[i]);}}//显示队列的头数据public int headQueue(){if (isEmpty()){throw new RuntimeException(队列为空);}return arr[front1];} } 上面代码实现完成后运行会发现添加输入后取出取出的位置不能再进行添加了也就是添加完取出就不能再用了没达到复用的效果 4所以下面进行优化改进成环形数组取模来实现 ps这里最后有效数据个数把他啊想象成一个环形有可能rear在前有可能front在前括号里加一个maxSize是防止rear在front后面形成负数然后取模。 package DataStructures.queue;import java.util.Scanner;/*** 使用数组模拟队列*/public class CircleArrayQueueDemo {public static void main(String []args){//测试//创建一个队列CircleArrayQueue arrayQueue new CircleArrayQueue(4);System.out.println(测试数组模拟环形队列);char key ; //接收用户输入Scanner scanner new Scanner(System.in);boolean loop true;while(loop){System.out.println(s(show):显示队列);System.out.println(e(exit):退出程序);System.out.println(a(add):添加数据到队列);System.out.println(g(get):从队列取出数据);System.out.println(h(head):查看队列头的数据);key scanner.next().charAt(0); //接收一个字符System.out.println();switch (key){case s:arrayQueue.showQueue();break;case a:System.out.println(输入一个数);int value scanner.nextInt();arrayQueue.addQueue(value);break;case g: //取数据try {System.out.println(取出的数是 arrayQueue.getQueue());}catch (Exception e){System.out.println(e.getMessage());}break;case h:try{System.out.println(队列头的数据是arrayQueue.headQueue());}catch (Exception e){System.out.println(e.getMessage());}break;case e://退出scanner.close();loop false;break;default:break;}}System.out.println(程序退出~~~~~);} }class CircleArrayQueue{private int maxSize; //数组的最大容量//指向队列头部就指向队列的第一个元素// arr[front]就是队列的第一个元素front初值为0private int front;private int rear; //队列尾private int[] arr; //用于存放数据的队列数组//创建队列构造器public CircleArrayQueue(int arrMaxSize){maxSize arrMaxSize; //表示数组最大容量arr new int[maxSize];front 0;rear 0; //指向队列尾部指向队列尾的数据即就是队列的最后一个数据}//判断队列是否满public boolean isFull(){return (rear1)%maxSize front;}//判断队列是否为空public boolean isEmpty(){return rear front;}//添加数据public void addQueue(int n){//是否为空if (isFull()){System.out.println(队列已满不能加入);return;}//直接将数据加入arr[rear] n;//将rear后移这里必须考虑取模rear (rear1) % maxSize;System.out.println(添加成功);}//获取队列数据出队列public int getQueue(){//是否为空if (isEmpty()){//通过抛出异常出来throw new RuntimeException(队列为空不能取数据);}//这里需要分析出front是指向队列的第一个元素// 1.先把front对应的值保存到临时变量// 2.将front 后移// 3.返回临时变量int value arr[front];front (front1) % maxSize;return value;}//显示队列的所有数据public void showQueue(){if (isEmpty()){System.out.println(队列为空);return;}//遍历,从front开始变量遍历多少个元素for (int i front; i front size();i){System.out.println(arr[ i%maxSize ] arr[i%maxSize]);}}//求出当前队列有效数据的个数public int size(){return (rear maxSize - front) % maxSize;}//显示队列的头数据public int headQueue(){if (isEmpty()){throw new RuntimeException(队列为空);}return arr[front];} }
http://www.huolong8.cn/news/292763/

相关文章:

  • 做网站备负责人风险大吗新闻发布会邀请哪些媒体
  • 为餐饮企业做网站推广小说网站建站程序
  • asp.net网站开发简明教程网站建设询价单
  • 招聘网站开发技术维护建筑公司网站能显示二级建造师报名吗
  • 手机网站seo怎么做跳转短链接生成
  • 湖北自适应网站建设报价中国手机网
  • 电子商务网站建设试卷.doc企业qq免费版
  • 烟台开发区网站建设wordpress在中国很慢
  • 安丘网站开发代理上网
  • 可以做游戏可以视频约会的网站前端开发培训机构成都
  • 设计网站公司力荐亿企邦版图设计工资一般多少
  • 温州网站建设方案维护网站建设html的好处
  • 网站建设公司如何收费北京装修平台网站
  • 免费网站正能量入口下载天津外贸seo推广
  • 昊诺网站建设网络推广下列是网页制作软件
  • 医疗网站前置审批取消给建设单位造成损失的
  • c语言和c 哪个做网站好企业网站建设实训报告体会
  • 凯里网站建设手机网站相册代码
  • wordpress 创建网站网站建设实训建议
  • 旅行网站排名摄影 网站 源码
  • 建筑案例分析网站网站开发可以开发哪些
  • 网站制作前需要进行规划设计服装集团网站建设
  • 做数据网站合肥网站运营
  • 做企业门户网站响应式网站几个断点
  • 做网络销售怎么建立网站芝麻开门网站建设
  • 台州建设公司网站用jsp做的网站框架
  • 哪里有做企业网站的简述网页设计的流程
  • 贵阳网站制作江苏省建设斤网站
  • 做pc网站软件飞虹网架建设官方网站
  • 贵阳网站建设 网站制作wordpress首页加速