线性表的插入删除

来源:互联网 发布:windows开启snmp 编辑:程序博客网 时间:2024/05/16 06:25
package ShuJuJieGou;import java.lang.reflect.Array;import java.util.Scanner;/** * 项目名称:LeetCodeTest  * 类名称:XianXinList  * 类描述:线性表的操作(插,删) * * @author Jackpon * @Time:2017年8月6日 下午12:33:48 * */public class XianXinList {     static Scanner scanner=new Scanner(System.in);    /**向数组a输入数据      * @param a     */    void cin(int []a,int num) {        int i=0;        System.out.println("请输入数组的各位数字:");//      while (scanner.hasNext()) {//          if(i==num)break;//          a[i++]=scanner.nextInt();//      }        /*A while loop with hasNext() will not break until         you use an End Of File(Ctrl+D on Linux/Unix/Mac or Ctrl+Z on Windows        or a condition to break out of the loop) */        while(true) {            if(i==num) break;            a[i++]=scanner.nextInt();            }    }    /**向数组a某位置插入数字     * @param a     * @param in 位置     * @param value 值     */    void insertnum(int a[],int in,int value) {         int n=a.length-1;        if(1<=in&&in<n) {            for(int i=n;i>=in;--i) {                a[i]=a[i-1];            }            a[in-1]=value;        }else {         System.out.println("wrong");        }       }    void delnum(int a[],int in) {        int n=a.length;        if(1<=in&&in<=n) {            for(int i=in-1;i<n-1;++i) {                a[i]=a[i+1];            }        }else {         System.out.println("wrong");        }    }    public static void main(String[] args) {        System.out.println("请输入数组大小:");        int num=scanner.nextInt();        int []a=new int[num+1];        new XianXinList().cin(a,num);//      System.out.println("请输入要插入的位置和数字:");//      int mi=0,b[]=new int[2];//      while (true) {//          if(mi==2)break;//          b[mi++]=scanner.nextInt(); //      }        System.out.println("请输入要删除的位置:");        new XianXinList().delnum(a,2);        for(int i=0;i<a.length-2;++i) {            System.out.print(a[i]+"\t");        }    }}
原创粉丝点击