数据结构 (相关例题)
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++;
}