zoukankan      html  css  js  c++  java
  • 简易的链表

    package employee;
    
    import java.util.Objects;
    
    /**
     * 自己写一个简易链表
     * @author 86188
     *
     * @param <E>
     */
    public class SimpleList<E> {
    	private Node head; //头节点
    	private Node last; //尾节点
    	public int size; //链表长度
    	
    	public SimpleList() {
    		
    	}
    	public SimpleList(Node head, Node last, int size) {
    		super();
    		this.head = head;
    		this.last = last;
    		this.size = size;
    	}
    
    	
    	//头部插入
    	public void insertFirst(E e){
    		Node<E> node = new Node<E>(e);
    		//之前的头节点成为这个节点的下一个节点
    		node.next = head;
    		//这个节点成为新节点
    		head = node;
    		size++;
    	}
    	
    	//读取
    	public E get(E e){
    		//获取头部元素
    		Node<E> node = head;
    		while(!Objects.isNull(node)) {
    			//如果当前节点的数据和传入数据相等
    			if(node.element.equals(e)) {
    				return node.element;
    			}
    			node  = node.next;
    		}
    		return  null;
    	}
    	//删除指定的字符串
    	public E earse(E e){
    	
    		E result = null;
    		
    		if(head.element.equals(e)) {
    			result = (E) head.element;
    			head = head.next;
    			size--;
    			return result;
    		}else {
    			Node<E> node = head;
    			while(!Objects.isNull(node.next)) {
    				
    				if(node.next.element.equals(e)) {
    					result = (E)node.next.element;
    					node.next = node.next.next;
    					size--;
    					return result;
    				}
    				node  = node.next;
    			}
    		}
    		return null;
    		
    	}
    	//负责保存数据
    	private  class Node<E> {
    		Node previous;// 上一个节点
    		Node next;// 下一个节点
    		E element;// 数据
    		public Node(Node previous, Node next, E element) {
    			this.previous = previous;
    			this.next = next;
    			this.element = element;
    		}
    		public Node(E element) {
    			this.element = element;
    		}
    		@Override
    		public String toString() {
    			return "Node [info="+element+",next="+next+"]";
    		}
    	}
    	 @Override
    	    public String toString() {
    		// 打印head节点会因为next打印出整个链表的内容
    	        return "SimpleList [node=" + head + "]";
    	    }
    	
    }
    

      

    package employee;
    
    public class TestSimpleList {
    
    	public static void main(String[] args) {
    		SimpleList<String>  simpleList = new SimpleList<String>();
    		simpleList.insertFirst("newStart1");
    		simpleList.insertFirst("newStart2");
    		simpleList.insertFirst("newStart3");
    		simpleList.insertFirst("newStart4");
    		System.out.println(simpleList.get("newStart4"));
    		simpleList.earse("newStart2");
    		System.out.println(simpleList.toString()+simpleList.size);
    
    	}
    
    }
    

      

  • 相关阅读:
    Tyvj 1729 文艺平衡树
    送花
    Tyvj 1728 普通平衡树
    [NOI2004]郁闷的出纳员
    [HNOI2004]宠物收养所
    [HNOI2002]营业额统计
    [NOIP2012] 借教室
    无聊的数列
    忠诚
    XOR的艺术
  • 原文地址:https://www.cnblogs.com/seven717/p/13039506.html
Copyright © 2011-2022 走看看