链表的增,删,改,查实现

package 链表上; import java.util.Stack; /** * 初始化链表节点 * @author buder_cp * * @param */ class ListNode { public T value; public ListNode next; public ListNode(){} public ListNode(T value, ListNode next) { super(); this.value = https://www.it610.com/article/value; this.next = next; } public ListNode pre; }public class MiniList { private ListNode head = new ListNode(null, null); /** * 数组转化成链表 */ public void arrayToList(T[] array) { ListNode p = head; for (T t : array) { ListNode node = new ListNode(t, null); p.next = node; p = node; } } /** * 打印链表 */ public void printList() { ListNode p = head.next; while (p != null) { System.out.print(p.value + " "); p = p.next; } System.out.println(); } /** * 插入 */ public void insert(int index, T value) { ListNode p = head; for (int i = 0; i < index; i++) { p = p.next; } ListNode node = new ListNode<>(value, null); node.next = p.next; p.next = node; } /** * 删除 * * @param args */ public T remove(int index) { ListNode pre = head; for (int i = 0; i < index; i++) { pre = pre.next; } ListNode p = pre.next; pre.next = p.next; return p.value; } /** * 查询 * * @param args */ public T get(int index) { ListNode p = head; for (int i = 0; i < index; i++) { p = p.next; } return p.value; } /** * 修改 * * @param args */ public void set(int index, T value) { ListNode p = head; for (int i = 0; i <= index; i++) { p = p.next; } p.value = https://www.it610.com/article/value; } private void recursive(ListNode p) { // TODO Auto-generated method stub if (p != null) { recursive(p.next); System.out.println(p.value + " "); } } public static void main(String[] args) { MiniList list = new MiniList<>(); Integer[] array = { 1, 2, 3, 4, 5, 6 }; list.arrayToList(array); System.out.print("original: "); list.printList(); System.out.print("insert: "); list.insert(1, 233333); list.printList(); System.out.print("delete: "); list.remove(1); list.printList(); System.out.print("search: "); System.out.println(list.get(2)); System.out.print("reset: "); list.set(2, 66666); list.printList(); } }


    推荐阅读