我的代码:
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; } }