数据结构之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



原文地址:https://www.cnblogs.com/ryelqy/p/10104135.html