您的位置:首页 > 编程语言 > Java开发

java 链表实现增删改查功能

2016-11-18 12:01 405 查看


我的代码:

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;

    }

   }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: