数据结构之LinkList

这篇博客详细探讨了LinkList数据结构,包括它的基本构成、Link节点的代码实现以及LinkList整体代码的编写。通过运行代码并展示结果,作者帮助读者深入理解这一重要的数据结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值