单链表java实现
Posted jesh
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单链表java实现相关的知识,希望对你有一定的参考价值。
单链表java实现,基础的东西不能忘记哦。这些都是大学的时候经常考试的
package dataStructure; import java.util.HashMap; /** * @author JESH * * @param <T> */ public class LinkList<T> { private final Node<T> head; public LinkList() { head = new Node<T>(null); } public void addNode(T data) { Node<T> n = new Node<T>(data); Node<T> tmp = head; while(tmp.getNext()!=null) { tmp = tmp.getNext(); } tmp.setNext(n); } public T getData(int index) { if(index <0) { return null; } int i = 0; Node<T> tmp = head; while(tmp.getNext() != null) { if(i++ == index) { return (T) tmp.data; } tmp = tmp.getNext(); } if(i == index) { return (T) tmp.data; } return null; } public boolean delNode(T data) { if(data ==null) return false; Node tmp = head; while(tmp.getNext() != null) { if(tmp.getNext().data.equals(data)) { tmp.setNext(tmp.getNext().getNext()); return true; } tmp = tmp.getNext(); } return false; } public String toString() { StringBuffer sb = new StringBuffer(); Node t= head; sb.append("head:" + t.data); while(t.getNext()!=null) { t = t.getNext(); sb.append("-->").append("node:"+t.data.toString()); } sb.append("-->null"); return sb.toString(); } private class Node<T> { T data; private Node next = null; public Node(T data) { this.data = data; } public Node getNext() { return next; } public void setNext(Node next) { this.next = next; } } public static void main(String[] args) { LinkList<Integer> ll = new LinkList<Integer>(); for(int i = 0;i<100;i++) { ll.addNode(i); } for(int j =0;j<108;j++) { System.out.println(ll.getData(j)); } for(int j =0;j<108;j++) { if(j%3==0) { ll.delNode(j); } } System.out.println(ll); LinkList<HashMap<String,String>> l2 = new LinkList<HashMap<String,String>>(); System.out.println(l2); HashMap m = new HashMap<String,String>(); m.put("1", "1"); l2.addNode(m); System.out.println(m); System.out.println(l2); System.out.println(l2.getData(0)); System.out.println(l2.getData(1)); System.out.println(l2.getData(2)); System.out.println(l2.getData(4)); System.out.println(l2.getData(5)); l2.delNode(m); System.out.println(l2); } }
以上是关于单链表java实现的主要内容,如果未能解决你的问题,请参考以下文章