欢迎来到天天文库
浏览记录
ID:47614593
大小:41.26 KB
页数:15页
时间:2019-10-09
《JAVA大数据结构——单链表地操作》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、标准文档单链表的操作方法一:packagech02;(1)建立结点类Node.javapublicclassNode{publicObjectdata;//存放结点数据值publicNodenext;//存放后继结点//无参构造函数publicNode(){this(null,null);}//只有结点值的构造函数publicNode(Objectdata){this(data,null);}//带有节点值和后继结点的构造函数publicNode(Objectdata,Nodenext){this.data=data;实用大全标准文档
2、this.next=next;}}(2)建立链表及操作LinkList.javapackagech02;importjava.util.Scanner;publicclassLinkListimplementsIList{publicNodehead;//单链表的头指针//构造函数初始化头结点publicLinkList(){head=newNode();}//构造函数构造长度为n的单链表publicLinkList(intn,booleanOrder)throwsException{this();if(Order)create1(n
3、);//头插法顺序建立单链表实用大全标准文档elsecreate2(n);//尾插法逆序建立单链表}//头插法顺序建立单链表publicvoidcreate1(intn)throwsException{Scannersc=newScanner(System.in);System.out.println("请输入结点的数据(头插法):");for(inti=0;i4、sc=newScanner(System.in);System.out.println("请输入结点的数据(尾插法):");for(inti=0;i5、xt;intlength=0;while(p!=null){p=p.next;length++;//返回P不空长度length加1}实用大全标准文档returnlength;}//读取并返回第i个位置的数据元素publicObjectget(inti)throwsException{Nodep=head.next;intj;//从首结点开始向后查找,直到p指向第i个结点或者p为nullfor(j=0;ji6、7、p==null)//i不合法时抛出异常thrownewExcep8、tion("第"+i+"个数据元素不存在");returnp.data;}//插入x作为第i个元素publicvoidinsert(inti,Objectx)throwsException{Nodep=head;intj=-1;实用大全标准文档//寻找第i个结点的前驱i-1while(p!=null&&ji-19、10、p==null)//i不合法时抛出异常thrownewException("插入位置不合法");Nodes=newNode(x);s.next=p.next;p.next=s11、;}//删除第i个元素publicvoidremove(inti)throwsException{Nodep=head;intj=-1;while(p!=null&&ji-112、13、p.next==null)thrownewException("删除位置不合法");p.next=p.next.next;}//返回元素x首次出现的位序号publicintindexOf(Objectx){Nodep=head.next;intj=0;while(p!=nu14、ll&&!p.data.equals(x)){p=p.next;j++;}if(p!=null)returnj;elsereturn-1;}实用大全标准文档publicvoiddisplay(){Nodep=head.n
4、sc=newScanner(System.in);System.out.println("请输入结点的数据(尾插法):");for(inti=0;i5、xt;intlength=0;while(p!=null){p=p.next;length++;//返回P不空长度length加1}实用大全标准文档returnlength;}//读取并返回第i个位置的数据元素publicObjectget(inti)throwsException{Nodep=head.next;intj;//从首结点开始向后查找,直到p指向第i个结点或者p为nullfor(j=0;ji6、7、p==null)//i不合法时抛出异常thrownewExcep8、tion("第"+i+"个数据元素不存在");returnp.data;}//插入x作为第i个元素publicvoidinsert(inti,Objectx)throwsException{Nodep=head;intj=-1;实用大全标准文档//寻找第i个结点的前驱i-1while(p!=null&&ji-19、10、p==null)//i不合法时抛出异常thrownewException("插入位置不合法");Nodes=newNode(x);s.next=p.next;p.next=s11、;}//删除第i个元素publicvoidremove(inti)throwsException{Nodep=head;intj=-1;while(p!=null&&ji-112、13、p.next==null)thrownewException("删除位置不合法");p.next=p.next.next;}//返回元素x首次出现的位序号publicintindexOf(Objectx){Nodep=head.next;intj=0;while(p!=nu14、ll&&!p.data.equals(x)){p=p.next;j++;}if(p!=null)returnj;elsereturn-1;}实用大全标准文档publicvoiddisplay(){Nodep=head.n
5、xt;intlength=0;while(p!=null){p=p.next;length++;//返回P不空长度length加1}实用大全标准文档returnlength;}//读取并返回第i个位置的数据元素publicObjectget(inti)throwsException{Nodep=head.next;intj;//从首结点开始向后查找,直到p指向第i个结点或者p为nullfor(j=0;ji
6、
7、p==null)//i不合法时抛出异常thrownewExcep
8、tion("第"+i+"个数据元素不存在");returnp.data;}//插入x作为第i个元素publicvoidinsert(inti,Objectx)throwsException{Nodep=head;intj=-1;实用大全标准文档//寻找第i个结点的前驱i-1while(p!=null&&ji-1
9、
10、p==null)//i不合法时抛出异常thrownewException("插入位置不合法");Nodes=newNode(x);s.next=p.next;p.next=s
11、;}//删除第i个元素publicvoidremove(inti)throwsException{Nodep=head;intj=-1;while(p!=null&&ji-1
12、
13、p.next==null)thrownewException("删除位置不合法");p.next=p.next.next;}//返回元素x首次出现的位序号publicintindexOf(Objectx){Nodep=head.next;intj=0;while(p!=nu
14、ll&&!p.data.equals(x)){p=p.next;j++;}if(p!=null)returnj;elsereturn-1;}实用大全标准文档publicvoiddisplay(){Nodep=head.n
此文档下载收益归作者所有