用Java写一个链表数据
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
用Java写一个链表数据
Java代码
1.package arrayListTest;
2.//定义一个链表
3.public class Node{
4.
5.private int m_Data;//链表中的数据
6.private Node m_Next;//链表中指针属性指向下个Node
对象的对象应用
7.Node(int data){
8.m_Data=data;
9.m_Next=null;
10.}
11.Node(int data,Node next){
12.m_Data=data;
13.m_Next=next;
14.}
15.void setData(int data){//修改节点中的数据
16.m_Data=data;
17.
18.}
19.int getData(){//获得节点中的数据
20.return m_Data;
21.}
22.void setNext(Node next){//修改节点的指针
23.m_Next=next;
24.}
25.Node getNext(){//获得节点中的指针指向的对象的引用
26.return m_Next;
27.}
28.}
Java代码
1.package arrayListTest;
2.//修改链表
3.public class LinksList{
4.
5.Node m_FirstNode;//链表中的第一个节点
6.//构造函数
7.LinksList(){
8.m_FirstNode=null;
9.}
10.LinksList(int data){
11.m_FirstNode=new Node(data);
12.}
13.String visitAllNode(){//遍历数据将数据串成一个字符
串返回一个S
14.Node next=m_FirstNode;
15.String s="";
16.while(next!=null){
17.s=s+next.getData()+";";
18.next=next.getNext();
19.}
20.return s;
21.}
22.void insertAtBegin(int data){//将数据插入到节点的前
面
23.if(m_FirstNode==null){//如果是空链表的话直接插入就可以
了
24.m_FirstNode=new Node(data);//把data做为第一个
节点传给Node对象
25.}
26.else{
27.m_FirstNode=new Node(data,m_FirstNode);//把新节点
插入到第一个节点的前面并指向原来的第一个节点
28.}
29.}
30.void insertAfterId(int data,int id){//将数据data插入到
包含数据ID的节点后面若连接没有id则插入在整个链表的最后
31.Node next=m_FirstNode;
32.if(next==null){//对空链表直接插入
33.m_FirstNode=new Node(data);
34.}else{
35.while(next.getNext()!=null&&next.getData()==id){
36.next=next.getNext();//找到合适的插入位置
37.//Node i=next.getNext();//创建一个next的指
针
38.//Node next1=new Node(data,i);//创建Node的
对象把data插入到I的位置上
39.//next.setNext(next1);
40.next.setNext(new Node(data,next.getNext()));//
按照id来设置数据
41.}
42.}
43.}
44.boolean removeAtId(int id){//删除链表中的第一个数据为
ID的节点
45.Node ahead=m_FirstNode;//前面的节点
46.Node follow=ahead;//指向ahead节点
47.if(ahead==null){
48.return false;
49.}
50.else if(ahead.getData()==id){//如果节点获取的数据
Data和ID是一样的
51.m_FirstNode=m_FirstNode.getNext();//删除成
功
52.return true;
53.}else{
54.ahead=ahead.getNext();
55.while(ahead!=null){
56.if(ahead.getData()==id){
57.follow.setNext(ahead.getNext());
58.return true;
59.}
60.follow=ahead;
61.ahead=ahead.getNext();
62.}
63.}
64.
65.return false;
66.}
67.void removeAll(){
68.m_FirstNode=null;
69.}
70.}
Java代码
1.package arrayListTest;
2.
3.public class UserLinksList{
4.
5./**