美文网首页
数据结构 (相关例题)

数据结构 (相关例题)

作者: 定格r | 来源:发表于2018-09-18 19:47 被阅读0次

    1、用泛型类方法定义圆柱体类,计算圆柱体底面积和体积,并进行测试

    类:
    package ch1_1;
    import java.lang.*;
    public class Cylinder<T> {
        private T r;
        private T h;
        public Cylinder(T radius,T height) {  //构造函数
            r = radius;
            h = height;
        }
        public double Area() {
            double ob1 = Double.valueOf( r.toString()); //强制类型转化,先转化为字符串型,再转化为double型,赋值给 ob1
            return  Math.PI*ob1*ob1;
        }
        public double Volume(){
          double ob1 = Double.valueOf( r.toString());
          double ob2 = Double.valueOf( h.toString());
          return Math.PI*ob1*ob1*ob2;
            
        }
    }
    
    
    测试类:
    package ch1_1;
    
    public class test {
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            Cylinder c = new Cylinder (2.0,3.5); //创建对象
            java.text.DecimalFormat df = new java.text.DecimalFormat("#.###");  //对输出的结果保留三位小数
            System.out.println(df.format(c.Area()));  //df.format() 将数字格式化为三位小数
            System.out.println(c.Volume());
        }
    
    }
    

    顺序表插入操作

    类:

    public class Insertlist<T> {
        private int length;
        private T[] listArray;
        public Insertlist(int n) { //有参构造方法
            if(n<=0) {
                System.out.println("error");
                System.exit(1);
            }
            length=0;
            listArray=(T[]) new Object[n]; //先实例化 Object 数组,然后转换成泛型数组
        }
    
        public void add(T obj,int pos) {     //插入的方法
            for(int i=length;i>=pos;i--)   
                listArray[i]=listArray[i-1];  //移动位置
            listArray[pos-1]=obj;             //插入
            length++;                         //数据长度加一
        }
        public void put() {
            for(int i=0;i<=length;i++) {
                System.out.print(listArray[i]+" ");
            }
        }
    }
    
    

    测试类:

    public class test {
    public static void main(String[ ]args) {
        Insertlist<Float> list=new Insertlist<Float>(20);  //创建泛型类对象,确定数据类型
        for(int i=1;i<=5;i++) {  //循环给插入的方法传入插入的数据以及插入的位置
            list.add(i*10f, i);
        }
        list.add(99.9f, 3);
        list.put();    //调用输出数组的方法
    }
    }
    

    结果:


    image.png

    2.设顺序表 va 中的数据元素递增有序。试写一算法,将 x 插入到顺序表的适当位置上,以保持该表的有序性。

    public void addsh(T x) {
         int n=0;
         //找到要插入的位置
         for(int i=0;i<=length;i++) {
             if(Double.valueOf( x.toString())<Double.valueOf( list[i].toString())) {
              n=i;
              System.out.print("要插入位置 pos 是:"+n+"\n");
              break;
             } 
         }
         //插入
        for(int j=length;j>n;j--) {
                list[j]=list[j-1];
         }
             list[n]=x;
             length++;
     }
    

    相关文章

      网友评论

          本文标题:数据结构 (相关例题)

          本文链接:https://www.haomeiwen.com/subject/dsimnftx.html