天天看点

Singly linked list algorithm implemented by JavaStep 1. Define a structureStep 2. implements the functions Step 3. Test class for testing

linked list is a normal data structure.here i show how to implements it.

1

2

3

4

5

6

7

8

9

<code>public</code> <code>class</code> <code>listnode</code>

<code>{</code>

<code>    </code><code>public</code> <code>listnode next;</code>

<code>    </code><code>public</code> <code>int</code> <code>value;</code>

<code>    </code><code>public</code> <code>listnode(</code><code>int</code> <code>newvalue)</code>

<code>    </code><code>{</code>

<code>        </code><code>value = newvalue;</code>

<code>    </code><code>}</code>

<code>}</code>

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

<code>public</code> <code>class</code> <code>clist</code>

<code>    </code><code>private</code> <code>listnode head;</code>

<code>    </code><code>private</code> <code>listnode tail;</code>

<code>    </code><code>private</code> <code>listnode current;</code>

<code>    </code><code>private</code> <code>int</code> <code>listcountvalue;</code>

<code>    </code> 

<code>    </code><code>public</code> <code>clist()</code>

<code>        </code><code>listcountvalue =</code><code>0</code><code>;</code>

<code>        </code><code>head =</code><code>null</code><code>;</code>

<code>        </code><code>tail =</code><code>null</code><code>;</code>

<code>    </code><code>public</code> <code>void</code> <code>append(</code><code>int</code> <code>datavalue)</code>

<code>        </code><code>listnode newnode =</code><code>new</code> <code>listnode(datavalue);</code>

<code>        </code><code>if</code> <code>(listcountvalue ==</code><code>0</code><code>)</code>

<code>        </code><code>{</code>

<code>            </code><code>head = newnode;</code>

<code>            </code><code>tail = newnode;</code>

<code>        </code><code>}</code>

<code>        </code><code>else</code>

<code>            </code><code>tail.next = newnode;</code>

<code>        </code><code>current = newnode;</code>

<code>        </code><code>listcountvalue +=</code><code>1</code><code>;</code>

<code>    </code><code>public</code> <code>void</code> <code>insert(</code><code>int</code> <code>datavalue)</code>

<code>            </code><code>append(datavalue);</code>

<code>            </code><code>return</code><code>;</code>

<code>        </code><code>if</code><code>(current == tail)</code>

<code>            </code><code>current = tail;</code>

<code>            </code><code>listcountvalue +=</code><code>1</code><code>;</code>

<code>        </code><code>if</code><code>((current != head) &amp;&amp; (current != tail))</code>

<code>            </code><code>newnode.next = current.next;</code>

<code>            </code><code>current.next = newnode;</code>

<code>            </code><code>current = newnode;</code>

<code>    </code><code>public</code> <code>void</code> <code>delete()</code>

<code>        </code><code>if</code><code>(listcountvalue !=</code><code>0</code><code>)</code>

<code>            </code><code>if</code><code>(current == head)</code>

<code>            </code><code>{</code>

<code>                </code><code>head = current.next;</code>

<code>                </code><code>current = head;</code>

<code>                </code><code>listcountvalue -=</code><code>1</code><code>;</code>

<code>                </code><code>return</code><code>;</code>

<code>            </code><code>}</code>

<code>            </code><code>else</code>

<code>                </code><code>current = current.next;</code>

<code>    </code><code>public</code> <code>void</code> <code>printalllistnode()</code>

<code>        </code><code>current = head;</code>

<code>        </code><code>for</code> <code>(</code><code>int</code> <code>i =</code><code>0</code><code>; i &lt; listcountvalue; i++)</code>

<code>            </code><code>system.out.println(current.value);</code>

<code>            </code><code>current = current.next;</code>

<code>public</code> <code>class</code> <code>test</code>

<code>    </code><code>public</code> <code>static</code> <code>void</code> <code>main(string[] args)</code>

<code>        </code><code>clist clist =</code><code>new</code> <code>clist();</code>

<code>        </code><code>clist.append(</code><code>12</code><code>);</code>

<code>        </code><code>clist.append(</code><code>22</code><code>);</code>

<code>        </code><code>clist.insert(</code><code>66</code><code>);</code>

<code>        </code><code>clist.insert(</code><code>33</code><code>);</code>

<code>        </code><code>clist.delete();</code>

<code>        </code><code>clist.printalllistnode();</code>

we will see:

<code>12</code>

<code>22</code>

<code>66</code>

<code>33</code>