队列之数字解密

来源:互联网 发布:win10应用网络权限设置 编辑:程序博客网 时间:2024/04/30 06:14

本博文分为三个部分:一是题目;二是解题程序;三是总结。
一、题目
首先将第一个数删除,紧接着将第二个数放到这串数的末尾,再将第三个数删除并将第四个数放到这串数的末尾,再将第五个数删除……直到剩下最后一个数,将最后一个数删除。按照刚才的删除顺序,把这些删除的数连在一起就是解密后的号码。
梨子~631758924~615947283
二、程序

import java.util.Scanner;class Queue{    int[] data = new int[1000];    int head,tail;    public Queue(int head,int tail,int n){            this.head = head;            this.tail = tail;            for(int i=1;i<=n;i++){                this.data[i] = 0;            }        }}public class BB0102queue{    private static Queue q;    static int n;    public static void main(String[] args){        Scanner reader = new Scanner(System.in);        //读入数据        n = reader.nextInt();        q = new Queue(1,1,n);        for(int i=1;i<=n;i++){            q.data[i] = reader.nextInt();            q.tail++;        }        while(q.tail>q.head){            //打印队首并将队首出列            System.out.print(q.data[q.head] + "\t");            q.head++;            //先将队首的数放至队尾            q.data[q.tail] = q.data[q.head];            q.tail++;            //再将队首出列            q.head++;        }    }}

三、总结
1 队列的概念:
1)出队:只允许在队列的收不进行删除操作;
2)入队:在队列的尾部进行插入操作;
3)空队列:当队列中没有元素时(这里的一个知识点是head用来记录队列的队首,即第一位;tail用来记录队列的队尾的下一个位置,即最后一位的下一个位置;这样做的好处是当head==tail的时候,该队列为空
2 关于如何使用java的类来实现C中结构体的性质,本文就将整个队列封装成一个类,包含了一个数组和两个变量,此外还有创建对象时构造函数的应用
3 在实际的编程中,对于queue中变量,不是像本文一样直接进行操作,而是开放接口通过方法调用对变量进行操作,这里变量设为private,来保证安全性
4 注释快捷键: ctrl+”/”
5 查看源码的方法:ctrl+鼠标左键点击

0 0