生活随笔
收集整理的這篇文章主要介紹了
2021-9-下旬 数据结构-线性表-链表-java代码实现(复习用)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
鏈表涉及到指針了,這里我還不了解java里對指針的隱藏,又由于以前學過C++里的指針,二者混淆,導致一開始非常蒙,出了很多問題,當然后來隨著邊寫邊查,基本都解決了。
順便學習了一下java里的泛型
public class LinkedListZH<E> {public static final int ELEMENT_NOT_FOUND
= -1;private int size
;private Node<E> headNode
;private static class Node<E> {E element
;Node<E> next
= null;public Node(E element
, Node<E> next
) {this.element
= element
;this.next
= next
;}}public void clear(){headNode
= null;size
= 0;}public void isEmptyPrint(){if (headNode
== null){System.out
.println("Empty");}else{System.out
.println("Not Empty");}}public void containsPrint(E element
){Node<E> node
= headNode
;for(int i
= 0;i
< size
; i
++){if (node
.element
== element
){System.out
.println("Contain");return;}node
= node
.next
;}System.out
.println("Not Contain");}public void add(int index
, E element
){if ( index
== 0){Node<E> node
= new Node<>(element
,headNode
);headNode
= node
;}else {Node<E> node
= indexSearchNode(index
- 1);node
.next
= new Node<>(element
,node
.next
);}size
++;}public void remove(int index
){if (index
== 0){headNode
= headNode
.next
;}else{Node<E> pre
= indexSearchNode(index
- 1);pre
.next
= pre
.next
.next
;}size
--;}public void add(E element
){add(size
,element
);}private Node<E> indexSearchNode
(int index
){Node<E> node
= headNode
;for(int i
= 0; i
< index
; i
++){node
= node
.next
;}return node
;}public String toString() {StringBuilder string
= new StringBuilder();string
.append("size=").append(size
).append(" [");Node<E> node
= headNode
;for (int i
= 0; i
< size
; i
++) {if (i
!= 0) {string
.append(", ");}string
.append(node
.element
);node
= node
.next
;}string
.append("]");return string
.toString();}}
總結
以上是生活随笔為你收集整理的2021-9-下旬 数据结构-线性表-链表-java代码实现(复习用)的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。