java 顺序表实现增删改查,合并,排序功能



我的代码:

package ypj;
import java.util.*;
import java.lang.Math;

public class yupeijie_Seq {

  /**
   * @param args
   */
  
  public int []data;
  public int yupeijie_length;
  final int Maxsize=1024;
  public yupeijie_Seq(){
   data=new int[1024];
   this.yupeijie_length=0;
  }
  public void yupeijie_in(){//输入随机数
   for(int i=0;i<10;i++){
    this.data[i]=(int)(Math.random()*100);
    this.yupeijie_length++;
   }
  }
  public void out(){//输出
   for(int i=0;i<this.yupeijie_length;i++)
    System.out.println(this.data[i]);
  }
  public int getLength(){//获得长度
   return this.yupeijie_length;
  }
     public void insert(yupeijie_Seq s1,int element){//在表尾插入元素
      if(this.yupeijie_length>this.Maxsize-1)
       System.out.println("顺序表已满");
      else{
       this.data[yupeijie_length]=element;
       this.yupeijie_length++;
      }
     }
     public void insertt(int index,int element){//按索引插入元素
      if(index<0||index>=this.yupeijie_length){
       System.out.println("无此位置");
         
      }
      if(index>this.Maxsize-1){
       System.out.println("已满");
       
      }
       for(int i=this.yupeijie_length-1;i>=index;i--){
        this.data[i+1]=this.data[i];
       }
       this.data[index]=element;
          this.yupeijie_length++;
         
     }
     public void delete(int index){//删除元素
      if(this.yupeijie_length<1)
       System.out.println("表空");
      if(index<0||index>=this.yupeijie_length)
       System.out.println("无此位置");
      for(int i=index;i<this.yupeijie_length;i++){
       this.data[i]=this.data[i+1];
      }
      this.yupeijie_length--;
     }
     public void modify(int index,int element){//修改元素
      this.data[index]=element;
     }
     public int cha(int index){//按索引查找元素
      return this.data[index];
     }
     public void search(int element){//按元素值查找元素
      for(int i=0;i<this.yupeijie_length;i++)
       if(this.data[i]==element)
        System.out.println(i);    
     }
     public void sort(){//排序
      for(int i=0;i<this.yupeijie_length;i++){
       int min=i;
       for(int j=i;j<this.yupeijie_length;j++)
        if(this.data[j]<this.data[min])
         min=j;
       if(i!=min){
        int temp=this.data[i];
        this.data[i]=this.data[min];
        this.data[min]=temp;
       }
      }
     }
     public void merge(yupeijie_Seq s){//合并
      int j=0;
      for(int i=this.yupeijie_length;i<this.yupeijie_length+s.yupeijie_length-2;i++)
       this.data[i]=s.data[j++];
             this.yupeijie_length=this.yupeijie_length+s.yupeijie_length;
 }
     public static void main(String[] args) {
   // TODO Auto-generated method stub
      yupeijie_Seq s1=new yupeijie_Seq();
   s1.yupeijie_in();
   //s1.out();
      System.out.println("1 插入元素");
      System.out.println("2 删除元素");
      System.out.println("3 修改元素");
      System.out.println("4 查找元素");
      System.out.println("5 合并顺序表");
      System.out.println("6 排序");
      System.out.println("7 顺序表长度");
      int l=0;
      while(l<10){
      Scanner in = new Scanner(System.in);
   int a = in.nextInt();
  if(3<5){
  switch(a){
  case 1:
   System.out.println("请输入插入的元素:");
   Scanner in1= new Scanner(System.in);
   int b = in1.nextInt();
   System.out.println("请输入插入元素的位置:");
   int c = in.nextInt();
   s1.insertt(c,b);
   s1.out();
   break;
  case 2:
   System.out.println("请输入要删除元素的位置:");
   Scanner in2= new Scanner(System.in);
   int d=in2.nextInt();
   s1.delete(d);
   s1.out();
   break;
  case 3:
   System.out.println("请输入修改元素的位置:");
   Scanner in3=new Scanner(System.in);
   int e=in3.nextInt();
   System.out.println("请输入修改元素的值:");
   Scanner in4=new Scanner(System.in);
   int f=in4.nextInt();
   s1.modify(e, f);
   s1.out();
   break;
  case 4:
   System.out.println("请输入要查找的元素:");
   Scanner in5=new Scanner(System.in);
   int g=in5.nextInt();
   s1.search(g);
   break;
  case 5:
   yupeijie_Seq s2=new yupeijie_Seq();
   s2.yupeijie_in();
   s1.merge(s2);
   s1.out();
   break;
  case 6:
   s1.sort();
   s1.out();
   break;
  case 7:
   s1.getLength();
   break;
  }
  }
      }
  }
 }

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值