用Java写一个链表数据

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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./**

相关文档
最新文档