首页 Java泛型实现单链表

Java泛型实现单链表

举报
开通vip

Java泛型实现单链表学  号    11710115 天津城建大学 Java 语言程序设计C 实验报告 实验3:泛型实现链表     学生姓名 路江飞 班级 11卓越七班     一、 实验内容 1.掌握使用Java语言进行结构化程序设计; 2.熟悉Java泛型。 3.熟悉Eclipse开发环境,编写简单的Application程序,并编译和执行。 二、 实验要求 1.调试程序、编译,运行后得到正确的结果; 2.写出实验报告,要求记录编译和执行Java程序当中的系统错误信息提示,并给出解决办法。 ...

Java泛型实现单链表
学  号    11710115 天津城建大学 Java 语言程序 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 C 实验 报告 软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载 实验3:泛型实现链 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf     学生姓名 路江飞 班级 11卓越七班     一、 实验内容 1.掌握使用Java语言进行结构化程序设计; 2.熟悉Java泛型。 3.熟悉Eclipse开发环境,编写简单的Application程序,并编译和执行。 二、 实验要求 1.调试程序、编译,运行后得到正确的结果; 2.写出实验报告,要求 记录 混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载 编译和执行Java程序当中的系统错误信息提示,并给出解决办法。 三、 实验结果 文件1: package _List; class Node{ E e; Node next; Node(E e){ this.e=e; next=null; } } 文件2: package _List; public class Show { void print(){ 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("*     6.修改                            *");                                System.out.println("*     7.遍历                              *");                                  System.out.println("*     8.查看链表长度                    *");                          System.out.println("*     9.退出                              *");                                        System.out.println("*************************************"); } } 文件3: package _List; import java.util.Scanner; public class List { Node head; List(){ this.head=null; } List(E e[],int n){  //构造函数 this.head=new Node (e[0]); Node r=this.head; for(int i=1;is=new Node (e[i]); r.next=s; r=s; } r.next=null; } void add (E e){//按位置插入 int index,b=1; Scanner input=new Scanner(System.in); for(int j=0;b==1;j++){ System.out.print("请输入插入的位置(第一个数据之前是0号位置,以此类推):"); try{ index=input.nextInt(); } catch(Exception a){ System.out.println("输入错误!"); continue; } if(index>this.Length()||index<0) { System.out.println("插入位置错误!"); continue; } if(index==0){ Node s=new Node (e); s.next=this.head; this.head=s; b=0; } else{ int i=1; Node p=this.head; while(is=new Node (e); s.next=p.next; p.next=s; b=0; }    } } void delete(){      //按位置删除 int index,b=1; for(int j=0;b==1;j++){ Scanner input=new Scanner(System.in); System.out.print("请输入删除的位置(第一个数据是1号位置,以此类推):"); try{ index=input.nextInt(); } catch(Exception e){ System.out.println("输入错误!"); continue; } if(index>this.Length()||index<=0) { System.out.println("删除位置错误!"); continue; } Node p=this.head; int i=1; if(index==1){ this.head=p.next; b=0; } else{ while(i p=this.head; Node q = null; if(e.equals(p.e)){      //处理数据在1号位置的特殊情况 this.head=p.next; } else{ while(p!=null){ if(e.equals(p.e)){ q.next=p.next; break; } q=p;         //p为要删除数据的前一个 p=p.next; } } if(p==null){ System.out.println("删除的数据不存在!"); } } void Set(E a){          //按位置修改 int index,b=1; Scanner input=new Scanner(System.in); for(int j=0;b==1;j++){ System.out.print("请输入修改的位置:"); try{ index=input.nextInt(); } catch(Exception e){ System.out.println("输入错误!"); continue; } int i=1; Node p=this.head; if(index<=0||index>this.Length()) { System.out.println("修改位置错误!"); continue; } while(i p=this.head; while(p!=null){ count++; p=p.next; } return count; } void Get(){    //按位查找 int index,b=1; for(int j=0;b==1;j++){ Scanner input=new Scanner(System.in); System.out.print("请输入查询的位置:"); try{                  //检测异常 index=input.nextInt(); } catch(Exception e){    //捕捉异常 System.out.println("输入错误!"); continue; } int i=1; Node p=this.head; if(index>this.Length()||index<=0){ System.out.println("查找位置错误!"); continue; } while(i p=this.head; int index=1; for(int i=0;p!=null;i++){ if(e.equals(p.e)){    //不能写成p.e==e和s1==s2 System.out.println(p.e.toString()+"是第"+index+"个数!"); break; } else{ p=p.next; index++; } } if(p==null) System.out.println("所找的数据不存在!"); } void printlist(){  //遍历 Node p=this.head; if(p==null){ System.out.println("链表没有元素"); } else{ while(p.next!=null){ System.out.print(p.e.toString()+" "); p=p.next; } System.out.println(p.e.toString()); } } } 文件4: package _List; import java.util.Scanner; public class MainClass { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub String str[]={"12","43","54","23","abc"}; int lenth=str.length; int k=1,t=0; List a=new List(str,lenth);//初始化链表 Show show=new Show(); show.print(); for(int i=0;k==1;i++){ System.out.print("请选择您的操作:"); try{ Scanner input=new Scanner(System.in); t=input.nextInt(); } catch(Exception e){ System.out.println("输入错误!"); continue; }    Scanner input1=new Scanner(System.in); switch (t){ case 1:    a.Get(); break; case 2:    System.out.print("请输入您要查找的数据:"); String h=input1.nextLine(); a.Get1(h); break; case 3:    System.out.print("请输入您要插入的数据:"); String m=input1.nextLine(); a.add(m); break; case 4:    a.delete(); break; case 5:    System.out.print("请输入您要删除的数据:"); String s=input1.nextLine(); a.delete(s); break; case 6:    System.out.print("请输入您要修改后的数据:"); String n=input1.nextLine(); a.Set(n); break; case 7:    a.printlist(); break; case 8:    System.out.println("链表的长度:"+a.Length()); Break    ; case 9: k=0; break; default: System.out.println("输入错误!"); break; } } } } 运行结果:
本文档为【Java泛型实现单链表】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_562397
暂无简介~
格式:doc
大小:44KB
软件:Word
页数:0
分类:互联网
上传时间:2019-09-02
浏览量:8