• 数据结构之LinkList


    1、结构:

    2、Link代码:

    public class Link {
    
    	public int iData;
    	public double dData;
    	public Link next;
    	
    	public Link(int id,double dd){
    		iData = id;
    		dData = dd;
    	}
    	
    	public void displayLink(){
    		System.out.println("{" + iData + " , " + dData + " } ");
    	}
    	
    	
    }

    3、LinkList代码:

    public class LinkList {
    
    	private Link first;
    	
    	public LinkList(){
    		first = null;
    	}
    	
    	public boolean isEmpty(){
    		return (first == null);
    	}
    	
    	public void insertFirst(int id, double dd){
    		Link newLink = new Link(id, dd);
    		newLink.next = first;
    		first = newLink;
    	}
    	
    	public Link deleteFirst(){
    		Link temp = first;
    		first = first.next;
    		return temp;
    	}
    	
    	public void displayList(){
    		System.out.println("List (first -- > last);");
    		Link current = first;
    		while(current != null){
    			current.displayLink();
    			current = current.next;
    		}
    		System.out.println(" ");
    	}
    	
    	
    	public Link find(int key){
    		Link current = first;
    		while(current.iData != key){
    			if(current.next == null){
    				return null;
    			}else{
    				current = current.next;
    			}
    		}
    		return current;
    	}
    	
    	public Link delete(int key){
    		Link current = first;
    		Link previous = first;
    		while(current.iData != key){
    			if(current.next == null){
    				return null;
    			}else{
    				previous = current;
    				current = current.next;
    			}
    		}
    		if(current == first){
    			first = first.next;
    		}else{
    			previous.next = current.next;
    		}
    		return current;
    	}
    	
    }

    4、运行代码:

    public class LinkList2App {
    
    	public static void main(String[] args) {
    		LinkList theList = new LinkList();
    		
    		theList.insertFirst(22, 2.99);
    		theList.insertFirst(44, 4.99);
    		theList.insertFirst(66, 6.99);
    		theList.insertFirst(88, 8.99);
    		
    		theList.displayList();
    		
    		Link f = theList.find(44);
    		if(f != null){
    			System.out.println("Found link with key " + f.iData);
    		}else{
    			System.out.println("Can't find link");
    		}
    		
    		Link d = theList.delete(66);
    		if( d != null){
    			System.out.println("Deleted link with key " + d.iData);
    		}else{
    			System.out.println("Can't delete link");
    		}
    		
    		theList.displayList();
    		
    	}
    }

    5、结果:

    List (first -- > last);
    {88 , 8.99 } 
    {66 , 6.99 } 
    {44 , 4.99 } 
    {22 , 2.99 } 
     
    Found link with key 44
    Deleted link with key 66
    List (first -- > last);
    {88 , 8.99 } 
    {44 , 4.99 } 
    {22 , 2.99 } 



    Reference:

    [1] Robert Lalore(著) 计晓云,赵研,曾希,狄小菡(译), Java数据结构和算法(第二版),中国电力出版社,2004 :131-150



  • 相关阅读:
    MySQL四种分区类型
    CentOS下升级MySQL 5.0.* 到5.5
    CentOS5.5使用yum来安装LAMP
    mysql-bin 常见操作
    引爆你的Javascript代码进化
    python读写excel的简单方法demo
    python时间戳数字转为字符串格式表达
    Djang——CSRF verification failed. Request aborted
    Apache部署django
    Qt设置windows系统时间
  • 原文地址:https://www.cnblogs.com/ryelqy/p/10104135.html
Copyright © 2020-2023  润新知