2021-9-下旬 数据结构 - 线性表 - 循环链表 - java实现代码(复习用)
生活随笔
收集整理的這篇文章主要介紹了
2021-9-下旬 数据结构 - 线性表 - 循环链表 - java实现代码(复习用)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
public class CycleLinkedListZH<E> {public static final int ELEMENT_NOT_FOUND = -1;private int size;//定義全局變量(不在函數(shù)里的)不初始化默認(rèn)初始值為0,局部變量則初始值隨機(jī)//鏈表注意的無非那幾個(gè):插入刪除情況分類,空指針錯(cuò)誤private CycleLinkedListZH.Node<E> headNode;private static class Node<E> {E element;CycleLinkedListZH.Node<E> next = null;public Node(E element, CycleLinkedListZH.Node<E> next) {this.element = element;this.next = next;}public Node() {}}public void clear(){headNode = null;size = 0;}public int getSize(){return size;}public void isEmptyPrint(){if (headNode == null){System.out.println("Empty");}else{System.out.println("Not Empty");}}public E getElement(int index){CycleLinkedListZH.Node<E> node = indexSearchNode(index);return node.element;}public void containsPrint(E element){CycleLinkedListZH.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){CycleLinkedListZH.Node<E> node = new Node<>();node.element = element;if (size == 0){headNode = node;node.next = node;}else if (index == 0){CycleLinkedListZH.Node<E> lastnode = indexSearchNode(size - 1);lastnode.next = node;node.next = headNode;headNode = node;}else{CycleLinkedListZH.Node<E> nodePre = indexSearchNode(index-1);node.next = nodePre.next.next;nodePre.next = node;}size++;}public void remove(int index){if (index == 0){CycleLinkedListZH.Node<E> lastNode = indexSearchNode(size - 1);lastNode.next = lastNode.next.next;headNode = headNode.next;}else if (size == 0||size == 1){headNode = null;} else{CycleLinkedListZH.Node<E> nodePre = indexSearchNode(index-1);nodePre.next = nodePre.next.next;}size--;}public void add(E element){add(size,element);}private CycleLinkedListZH.Node<E> indexSearchNode (int index){CycleLinkedListZH.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(" [");CycleLinkedListZH.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();}}
總結(jié)
以上是生活随笔為你收集整理的2021-9-下旬 数据结构 - 线性表 - 循环链表 - java实现代码(复习用)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2021-9-下旬 数据结构-线性表-双
- 下一篇: 2021-9-下旬 数据结构-线性表-