构造队列问题(循环队列变形java)
来源:互联网 发布:编程菱形 编辑:程序博客网 时间:2024/05/24 04:30
1、牛客网原题:
题目描述
小明同学把1到n这n个数字按照一定的顺序放入了一个队列Q中。现在他对队列Q执行了如下程序:
小明同学发现,这段程序恰好按顺序输出了1,2,3,...,n。现在小明想让你构造出原始的队列,你能做到吗?[注:原题样例第三行5有错,应该为3,以下已修正]
while(!Q.empty()) //队列不空,执行循环{ int x=Q.front(); //取出当前队头的值x Q.pop(); //弹出当前队头 Q.push(x); //把x放入队尾 x = Q.front(); //取出这时候队头的值 printf("%d\n",x); //输出x Q.pop(); //弹出这时候的队头}
做取出队头的值操作的时候,并不弹出当前队头。小明同学发现,这段程序恰好按顺序输出了1,2,3,...,n。现在小明想让你构造出原始的队列,你能做到吗?[注:原题样例第三行5有错,应该为3,以下已修正]
输入描述:
第一行一个整数T(T ≤ 100)表示数据组数,每组数据输入一个数n(1 ≤ n ≤ 100000),输入的所有n之和不超过200000。
输出描述:
对于每组数据,输出一行,表示原始的队列。数字之间用一个空格隔开,不要在行末输出多余的空格.
示例1
输入
412310
输出
12 12 1 38 1 6 2 10 3 7 4 9 5
2、code:已a
package schooloffer17;import java.util.Scanner;/** * Created by caoxiaohong on 17/11/5 13:27. * 小明同学把1到n这n个数字按照一定的顺... * <构造队列></构造队列> */public class BuildQueue { public static void main(String[] args) { Scanner scanner=new Scanner(System.in); int T=scanner.nextInt(); int n; while (T-->0){ n=scanner.nextInt(); int[] numbers=new int[n]; int num=1;//插入数字 boolean isFind=false;//标识当前弹出元素前面,是否找到一个插入到队尾的元素,只有找到,才能弹出. for(int i=0;num<=n;i%=n){ if(isFind==false && numbers[i]==0){ isFind=true; i++; }else if(isFind==false && numbers[i]!=0){ i++; }else if(isFind==true && numbers[i]!=0){ i++; }else if(isFind==true && numbers[i]==0){ numbers[i]=num++; isFind=false; i++; } } //输出 for(int i=0;i<n;i++){ if(i<n-1) System.out.print(numbers[i]+" "); else System.out.println(numbers[i]); } } }}
阅读全文
0 0
- 构造队列问题(循环队列变形java)
- 循环队列基本构造
- Java 队列2:循环队列
- 队列:循环队列Java实现
- 循环队列问题
- 循环队列查找问题
- 循环队列问题总结
- java队列实现(顺序队列、链式队列、循环队列)
- java队列实现(顺序队列、链式队列、循环队列)
- Java实现循环队列
- 循环队列java
- java实现循环队列
- java实现循环队列
- JAVA数据结构---循环队列
- 循环队列java实现
- java实现循环队列
- JAVA循环队列
- java循环队列
- 习题6.1
- 算法---分解质因数
- centos7 rhel7怎么配置本地镜像源
- 多线程III----创建线程的第二种方式
- Git覆盖本地修改文件
- 构造队列问题(循环队列变形java)
- 友元函数friend
- hammingDistance
- py2中存储的pickle和py3中pickle无法读取的兼容性问题解决方案
- 一个op电路的分析
- web。xml初始化spring
- html里面制作表单。去掉一些不是常见的。这些都是基础中的简化版。可以更快的学习
- 2017ACMICPC亚洲区青岛站 B:Chenchen,Tangtang,ZengZeng【五分钟解决的战斗】
- 扫描包