java 链表实现增删改查功能

    xiaoxiao2021-11-23  38

    

    我的代码:

    package y;import java.lang.Math;import java.util.*;public class ypj_LNode1 {

     public static void main(String[] args) {  // TODO Auto-generated method stub  ypj_LNode1 L=new ypj_LNode1();//创建链表实例       for(int i=0;i<10;i++)        L.add();//向链表中添加元素       System.out.println("功能列表");          System.out.println("1.添加元素");          System.out.println("2.删除元素");          System.out.println("3.修改元素");          System.out.println("4.按索引查找元素");          System.out.println("5.按元素值查找元素");          System.out.println("-------请输入您要实现的功能序号-------");       int z=0;       while(z<10){       Scanner in=new Scanner(System.in);       int i=in.nextInt();       if(3<5){       switch(i){       case 1:        System.out.println("请输入插入元素的位置:");        Scanner in1=new Scanner(System.in);        int m=in1.nextInt();        System.out.println("请输入插入元素的值:");        Scanner in2=new Scanner(System.in);        int n=in2.nextInt();        L.insert(m, n);        L.print();        break;       case 2:        System.out.println("请输入删除元素的位置:");        Scanner in3=new Scanner(System.in);        int j=in3.nextInt();        L.delete(j);        L.print();        break;       case 3:        System.out.println("请输入修改元素的位置:");        Scanner in4=new Scanner(System.in);        int k=in4.nextInt();        System.out.println("请输入修改元素的值:");        Scanner in5=new Scanner(System.in);        int l=in5.nextInt();        L.modify(k,l);        L.print();        break;       case 4:        System.out.println("请输入查找元素的位置:");        Scanner in6=new Scanner(System.in);        int o=in6.nextInt();        L.ypj_search(o);        break;       case 5:        System.out.println("请输入插入元素的值:");        Scanner in7=new Scanner(System.in);        int p=in7.nextInt();        L.value_search(p);        break;       default:        System.out.println("无此功能");       }       }       }    }  public Node head=null;//头指针  public Node ypj_last=null;//尾指针  int length;  //构造函数  public ypj_LNode1(){   this.head=null;   this.ypj_last=head;   this.length=0;  }  //向链表中添加元素  public void add(){   int data=(int)(Math.random()*100);   Node n=new Node(data);   if(head==null){    head=n;   }else{    ypj_last.next=n;   }   ypj_last=n;   length++;  }  //输出元素  public void print(){   Node node=head;   while(node!=null){    System.out.println(node.value);    node=node.next;   }   //System.out.println(this.head);  }  //插入元素  public void insert(int index,int data){   if(index<0||index>length)    System.out.println("无此位置");   Node node=this.head;   //System.out.println(node);   int j=1;   while(j<index-1){    node=node.next;//使node指向第index-1个元素    j++;   }   //System.out.println(node);   Node insert=new Node(data);   insert.next=node.next;   node.next=insert;   length++;  }  //删除元素  public void delete(int index){   if(index<0||index>length)    System.out.println("无此位置");   Node node=this.head;   int j=1;   while(j<index){    node=node.next;    j++;   }   //System.out.println(node);   node.next=node.next.next;   this.length--;  }  //修改元素  public void modify(int index,int data){   if(index<0||index>length)    System.out.println("无此位置");   Node node=this.head;   int j=1;   while(j<index){    node=node.next;    j++;   }   //System.out.println(node);   node.value=data;  }  //按下标查找元素  public void ypj_search(int index){   if(index<0||index>length)    System.out.println("无此位置");   Node node=head;   int j=1;   while(j<index){    node=node.next;    j++;   }   System.out.println(node.value);  }  //按元素值查找  public void value_search(int data){   //int flag=0;   Node node=head;   while(node!=null&&node.value!=data)    node=node.next;   if(node==null)    System.out.println("不存在此元素");   else    System.out.println("存在此元素");  } }   class Node{    int value;    Node next;    public Node(int data){     this.value=data;     this.next=null;    }   }

    转载请注明原文地址: https://ju.6miu.com/read-678472.html

    最新回复(0)