线性表之数组
public class ArrayOpt { public static void main(String[] args) { //数组逆序 int [] a = {1,2,3,4,5,6,7,8,9,10,11}; int[] f = deleteArray(a,7); for (int k:f) { System.out.print(k+","); } } //遍历反转 public static int[] reverseArray(int[] a){ if(a.length==0){ System.out.print("This is null Array \n"); return a; } int [] b = new int[a.length]; for(int i =0;i<a.length;i++){ b[i] = a[(a.length-1)-i]; } return b; } //二分交换反转 public static int[] reverseArray1(int[] a){ if(a.length==0){ System.out.print("This is null Array \n"); return a; } for(int i=0;i<a.length/2;i++){ int temp = a[i]; a[i] = a[(a.length-1)-i]; a[(a.length-1)-i] = temp; } return a; } //数组的增加 public static int[] insertElement(int[]a,int loc,int e){ if(loc<=0||loc>a.length){ System.out.print("index IndexOutOfBoundsException,souf original aar \n"); return a; } int []aar = new int[a.length+1]; //因为下标从0开始,所以loc-1 System.arraycopy(a, 0, aar, 0, loc - 1); aar[loc-1] = e; System.arraycopy(a, loc - 1, aar, loc, a.length - (loc - 1)); return aar; } //数组的删除 public static int[] deleteArray(int[] a, int loc){ if(loc<=0||loc>a.length){ System.out.printf("index IndexOutOfBoundsException,souf original aar \n"); return a; } int [] aar = new int[a.length-1]; System.arraycopy(a,0,aar,0,loc-1); System.arraycopy(a,loc,aar,loc-1,a.length-loc); return aar; } //数组的修改 public int[] undateArray(int[] a,int loc,int data){ if(loc<=0||loc>a.length){ System.out.print("index IndexOutOfBoundsException,souf original aar \n"); return a; } a[loc] = data; return a; } //数组的查找 public boolean searchArray(int[] a,int date){ for (int j : a) { if (j == date) return true; } return false; } }