Java泛型实现单链表Word文档下载推荐.docx
- 文档编号:18595731
- 上传时间:2022-12-29
- 格式:DOCX
- 页数:12
- 大小:83.47KB
Java泛型实现单链表Word文档下载推荐.docx
《Java泛型实现单链表Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《Java泛型实现单链表Word文档下载推荐.docx(12页珍藏版)》请在冰豆网上搜索。
{
Ee;
Node<
next;
Node(Ee){
this.e=e;
next=null;
}
}
文件2:
publicclassShow{
voidprint(){
System.out.println("
*************************************"
);
*1.按位查找*"
*2.按值查找*"
*3.插入*"
*4.按位删除*"
*5.按值删除*"
*6.修改*"
*7.遍历*"
*8.查看链表长度*"
*9.退出*"
}
文件3:
importjava.util.Scanner;
publicclassList<
{
Node<
head;
List(){
this.head=null;
List(Ee[],intn){//构造函数
this.head=newNode<
(e[0]);
r=this.head;
for(inti=1;
i<
n;
i++){
Node<
s=newNode<
(e[i]);
r.next=s;
r=s;
r.next=null;
voidadd(Ee){//按位置插入
intindex,b=1;
Scannerinput=newScanner(System.in);
for(intj=0;
b==1;
j++){
System.out.print("
请输入插入的位置(第一个数据之前是0号位置,以此类推):
"
try{
index=input.nextInt();
catch(Exceptiona){
System.out.println("
输入错误!
continue;
if(index>
this.Length()||index<
0){
插入位置错误!
if(index==0){
(e);
s.next=this.head;
this.head=s;
b=0;
else{
inti=1;
p=this.head;
while(i<
index){
p=p.next;
i++;
s.next=p.next;
p.next=s;
b=0;
}
voiddelete(){//按位置删除
请输入删除的位置(第一个数据是1号位置,以此类推):
catch(Exceptione){
=0){
删除位置错误!
if(index==1){
this.head=p.next;
index-1){
p.next=p.next.next;
voiddelete(Ee){//按值删除
q=null;
if(e.equals(p.e)){//处理数据在1号位置的特殊情况
while(p!
=null){
if(e.equals(p.e)){
q.next=p.next;
break;
}
q=p;
//p为要删除数据的前一个
if(p==null){
删除的数据不存在!
voidSet(Ea){//按位置修改
请输入修改的位置:
if(index<
=0||index>
this.Length()){
修改位置错误!
p.e=a;
intLength(){//链表长度
intcount=0;
count++;
returncount;
voidGet(){//按位查找
请输入查询的位置:
try{//检测异常
catch(Exceptione){//捕捉异常
=0){
查找位置错误!
第"
+index+"
个元素为:
+p.e.toString());
voidGet1(Ee){//按值查找
intindex=1;
for(inti=0;
p!
=null;
if(e.equals(p.e)){//不能写成p.e==e和s1==s2
System.out.println(p.e.toString()+"
是第"
个数!
else{
p=p.next;
index++;
}
if(p==null)
所找的数据不存在!
voidprintlist(){//遍历
if(p==null){
System.out.println("
链表没有元素"
while(p.next!
System.out.print(p.e.toString()+"
"
System.out.println(p.e.toString());
文件4:
publicclassMainClass{
/**
*@paramargs
*/
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
Stringstr[]={"
12"
"
43"
54"
23"
abc"
};
intlenth=str.length;
intk=1,t=0;
List<
String>
a=newList<
(str,lenth);
//初始化链表
Showshow=newShow();
show.print();
k==1;
System.out.print("
请选择您的操作:
try{
Scannerinput=newScanner(System.in);
t=input.nextInt();
catch(Exceptione){
输入错误!
continue;
}
Scannerinput1=newScanner(System.in);
switch(t){
case1:
a.Get();
break;
case2:
System.out.print("
请输入您要查找的数据:
Stringh=input1.nextLine();
a.Get1(h);
case3:
请输入您要插入的数据:
Stringm=input1.nextLine();
a.add(m);
case4:
a.delete();
case5:
请输入您要删除的数据:
Strings=input1.nextLine();
a.delete(s);
case6:
请输入您要修改后的数据:
Stringn=input1.nextLine();
a.Set(n);
case7:
a.printlist();
case8:
System.out.println("
链表的长度:
+a.Length());
Break;
case9:
k=0;
default:
运行结果:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 实现 单链表