链表(java语言)

链表的基本操作特点:

  • 客户端不用去关注具体的Node以及引用关系的细节,只关注于提供的Link中支持的方法(数据的保存和输出);
  • Link类的主要功能是控制Node类对象的产生和根节点;
  • Node类主要负责数据的保存以及引用关系的分配。

eg.

//定义链表,负责数据的设置和输出
public class Link {//链表类,外部能够看见的只有这一个类
	//之所以定义在内部,主要是让其为Link类服务,且只为Link类服务
	private class Node{//定义节点类
		private String data;//保存数据
		private Node next;//应用关系
		public Node(String data) {
			this.data=data;
		}
		public void addNode(Node newNode) {
			if(this.next==null)
				this.next=newNode;
			else
				this.next.addNode(newNode);
		}
		public void printNode() {
			System.out.println(this.data);
			if(this.next!=null)
				this.next.printNode();
		}
	}
	//=======================以上为内部类=====================
	private Node root;//根节点
	public void add(String data) {//假设不允许有空值
		if(data == null) {
			return;
		}
		Node newNode=new Node(data);
		if(this.root==null) {
			this.root=newNode;
		}else {
			this.root.addNode(newNode);
		}
	}
	public void print() {
		root.printNode();
	}
}


public class LinkDemo {
	public static void main(String[] args) {
		Link link = new Link();
		link.add("火车头");
		link.add("A");
		link.add("B");
		link.add(null);
		link.add("C");
		link.print();
	}
}

 

转载于:https://my.oschina.net/u/3963749/blog/2208977

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值