> Java > java지도 시간 > Java 단일 연결 목록 구현 코드

Java 단일 연결 목록 구현 코드

高洛峰
풀어 주다: 2017-01-24 15:56:32
원래의
1981명이 탐색했습니다.

다음은 Java를 이용하여 Single Linked List를 작성하는 방법에 대해 편집자가 공유한 방법입니다. 궁금한 점이 있으면 메시지를 남겨주세요.

먼저 노드 클래스를 정의합니다

1

2

3

4

5

6

7

8

9

10

11

12

public class Node {

protected Node next; //指针域

public int data;//数据域

  

public Node( int data) {

this. data = data;

}

//显示此节点

public void display() {

System. out.print( data + " ");

}

}

로그인 후 복사

다음으로 단일 연결 목록을 정의하고 관련 메서드를 구현합니다.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

public class LinkList {

public Node first; // 定义一个头结点

private int pos = 0;// 节点的位置

public LinkList() {

this.first = null;

}

// 插入一个头节点

public void addFirstNode(int data) {

Node node = new Node(data);

node.next = first;

first = node;

}

// 删除一个头结点,并返回头结点

public Node deleteFirstNode() {

Node tempNode = first;

first = tempNode.next;

return tempNode;

}

// 在任意位置插入节点 在index的后面插入

public void add(int index, int data) {

Node node = new Node(data);

Node current = first;

Node previous = first;

while (pos != index) {

previous = current;

current = current.next;

pos++;

}

node.next = current;

previous.next = node;

pos = 0;

}

// 删除任意位置的节点

public Node deleteByPos(int index) {

Node current = first;

Node previous = first;

while (pos != index) {

pos++;

previous = current;

current = current.next;

}

if (current == first) {

first = first.next;

} else {

pos = 0;

previous.next = current.next;

}

return current;

}

// 根据节点的data删除节点(仅仅删除第一个)

public Node deleteByData(int data) {

Node current = first;

Node previous = first; // 记住上一个节点

while (current.data != data) {

if (current.next == null) {

return null;

}

previous = current;

current = current.next;

}

if (current == first) {

first = first.next;

} else {

previous.next = current.next;

}

return current;

}

// 显示出所有的节点信息

public void displayAllNodes() {

Node current = first;

while (current != null) {

current.display();

current = current.next;

}

System.out.println();

}

// 根据位置查找节点信息

public Node findByPos(int index) {

Node current = first;

if (pos != index) {

current = current.next;

pos++;

}

return current;

}

// 根据数据查找节点信息

public Node findByData(int data) {

Node current = first;

while (current.data != data) {

if (current.next == null)

return null;

current = current.next;

}

return current;

}

}

로그인 후 복사

마지막으로 테스트 클래스를 통해 관련 테스트를 수행할 수 있습니다.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

public class TestLinkList {

public static void main(String[] args) {

LinkList linkList = new LinkList();

linkList.addFirstNode(20);

linkList.addFirstNode(21);

linkList.addFirstNode(19);

//print19,21,20

linkList.add(1, 22); //print19,22,21,20

linkList.add(2, 23); //print19,22,23,21,20

linkList.add(3, 99); //print19,22,23,99,21,20

//调用此方法会print 19,22,23,99,21,20

linkList.displayAllNodes();

}

}

로그인 후 복사

이 시점에서 단일 링크 목록 작업 참고 사항은 여기에 있습니다.

위는 편집자가 소개한 Java 단일 연결 목록 구현 코드입니다. 궁금한 점이 있으면 메시지를 남겨주시면 편집자가 시간에 맞춰 답변해 드리겠습니다. . 또한 PHP 중국어 웹사이트를 지원해 주신 모든 분들께 감사드립니다!

Java 단일 연결 목록 구현 코드와 관련된 더 많은 기사를 보려면 PHP 중국어 웹사이트를 주목하세요!

관련 라벨:
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿