自己写的LinkList

来源:互联网 发布:java数组的逆序输出 编辑:程序博客网 时间:2024/06/04 19:33
package com.qianqiang;public class LinkList<T> {//定义头节点private Node<T> first;//定义链表的大小private int size;public LinkList(T element){    this.first=new Node<T>(element);    size++;}public LinkList(){   }//元素插入头部的位置public void addFirst(T element){    addIndex(0,element);}//元素插入尾部的位置public void addAfter(T element){    addIndex(size,element);}//插入指定标号的位置public int addIndex(int i,T element){  Node<T> p=first;   Node<T> q=null;   Node<T> temp=new Node<T>(element);if(i<0||i>size)return -1;else{    if(p==null)         {       first=temp;       size++;       return 0;         }       q=p.nextnode;for(int j=1;j<i;j++){p=q;q=q.nextnode;}}p.setNextNode(temp);    temp.setNextNode(q);    size++;    return i;}//获取指定节点的元素public T get(int i){    Node<T> p=first;if(i>=0&&i<size){throw new RuntimeException("数组越界或者数组为空!");}else{for(int j=0;j<i-1;j++)p=p.getNextNode();}return p.getElement();}//定义Node节点 public  static class Node<T> {// 内部元素值 private T element; private Node<T> nextnode;// 构造函数 public Node(T t) { this.element=t; }public T getElement() {return element;}public void setElement(T element) {this.element = element;}public Node<T> getNextNode() {return nextnode;}public void setNextNode(Node<T> node) {this.nextnode = node;} } public static void main(String[] args) {LinkList<Integer> list=new LinkList<Integer>();list.addFirst(1);list.addFirst(2);list.addFirst(3);System.out.println(3);}} 

0 0
原创粉丝点击