数据结构 (相关例题)

2018-09-18  本文已影响0人  定格r

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++;
 }
上一篇下一篇

猜你喜欢

热点阅读