01链表基本概念

//把Node类作为车厢

现在在面试的时候很多的公司都会要求你编写数组排序、链表、二叉树等。

所以对数据结构的掌握也已经成为了我们面试的基本功。数据结构的主要核心组成:引用+递归。

递归的特点:自己调用自己和有结束条件。

链表的基本介绍

如果说现在要想保存多个对象,那么首先可以想到的概念就只有对象数组,同时如果该数组可以保存任意的对象,那么又可以想到的一定是Object型的数组。

public class TestLinkDemo {
       public static void main(String[] args) throws Exception {
		Object data[]=new Object[3];
		}} 

但是在实际的开发之中,要面临的一个问题是:数组是一个定长的线性结构,也就是说虽然以上的代码能够满足存放多个内容,但是一旦我们的内容不足或者内容过多,都有可能造成内存的浪费

如果此时要想解决此类问题,最好的做法就是不定义一个固定长度的数组,有多少数据就保存多少数据。应该采用火车车厢的设计模式,动态的进行车厢的挂载,那么假设现在每节车厢只保留一个数据。那么现在假设可以不受到内存的限制,就可以证明解决了数组的长度问题。

如果要想去定义这个火车车厢肯定不能只保留一个数据,因为还需要另外一个指向,指向下一个节点.

虽然设置好了关系,但是里面存放的都是数据,真正需要的时候一定需要将数据依次取出,那么这个时候肯定用递归的方式来完成。

范例:链表的基本雏形

class Node{//因为只有Node类才可以在保存数据的同时设置数据的先后关系
	private Object data;
	private Node next;//定义下一个节点Node的地址
	public Node(Object data) {
		//车厢里面一定要去保存有数据
		this.data=data;
	}
	public void setData(Object data) {
		this.data=data;
	}
	public Object getData() {
		return this.data;
	}
	public void setNext(Node next) {
		this.next=next;
	}
	public Node getNexk() {
		return this.next;
	} 
}
public class TestLinkDemo {

	public static void main(String[] args) throws Exception {
		//1.封装几个节点
		Node root=new Node("火车头");//现在假设存放的数据是Stirng
		Node n1=new Node("车厢A");
		Node n2=new Node("车厢B");
		Node n3=new Node("车厢C");
		//2、需要设计节点的关系
		root.setNext(n1);
		n1.setNext(n2);
		n2.setNext(n3);
	//3、输入节点
		print(root);
	}
	public static void print(Node node) {
		if(node!=null) {
			//表示当前存在有节点
			System.out.println(node.getData());
			print(node.getNexk()); //继续向下取出
		}
		
	}

结果火车头
车厢A
车厢B

车厢C

结论:发现在整个链表的实现过程之中Node类的核心作用在于:保存数据和连接节点关系

但是以上的代码里面比较麻烦了。因为发现主方法需要自己来进行节点的创建以及关系的配置。

所以所谓的链表就需要有一个单独的类,假设:Link类来通过整个类来实现Node类的数据保存以及关系处理。

 

  

 

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值