java实现单链表的添加和遍历功能

java实现单链表的添加和遍历功能

为了防止自己遗忘,将现在还理解的单链表记录下来。

单链表具体是什么呢?
最根本的就是将你要储存的数据分成两个部分,一部分用来存储输入的数据,一部分存储下一个数据的地址

存储
next
地址

那么我们每个存储值的块就需要分隔成两个部分,一部分存储数据一部分存储下个块的地址

这样我们需要建立一个node类然后里面有两个成员变量,一个是date用来存放数据,一个是next用来存放下一个值的地址。然后我们建立一个构造函数,测试的时候直接将值传过来。

public class Node {
	public Object date;		//存放数据
	public Node next;			//存储下一个数据的地址
	public Node(Object date) {

		this.date = date;

	}

这样测试类创建新的对象的时候内存里面就有两个区域,一个存储数据,一个存储下一个地址。

接下来我们开始实现添加功能,首先我们需要建立一个链表类,它的成员变量就是第一个头结点

这里提一下头结点,它的作用就是存储第一个块的地址,其他的什么都不需要它干,这样我们只需要知道头结点就可以知道下面所有结点存储的内容了。

介绍完了头结点之后,我们开始创建添加结点的方法,我们需要在测试类添加数据的时候顺便建立新的对象,这样我们需要我们的添加方法需要接收到具体我们添加的东西。

public Node head	;	//初始化头结点
	
public void addNode(Object obj) {
	
	Node node = new Node(obj);
	}

这样测试类添加数据的时候就会直接创建对象,下面我们开始实现如何存储下一个结点的地址。

首先我们应该考虑一下我们应该怎么添加结点,正常思路下我们只需要一节一节的添加下去就可以,这里我用另一种添加方式就是从头开始添加

这是正常的添加方式

head
结点
结点
结点

这是我的添加方式,为了加强表现才会存在head还在指向第二个结点。

head
结点
添加结点
结点
结点

这是head存着的就是添加结点的下一个结点的地址,这样我们就需要将head的地址给添加结点,然后将添加结点的地址给head

public void addNode(Object obj) {
	
	Node node = new Node(obj);
	/*
	 * 串接到head
	 */
	node.next = head;//将原本head指向的地址赋给新加入的

	head = node;//将这个新加入的地址赋给head
		
	}

这样最后一个地址永远是null的了,知道了这点我们就可以开始写遍历了

	public void print() {
		
			Node temp = head;//建立一个游标,第一个游标指向头数据
			
			while(temp!=null) {
				System.out.println(temp.date);
				temp = temp.next;	//游标后移
			}			
	}

这里建立的temp充当一个指针的作用,创建node属性的它,这样他就也有date和next的两个属性了。
然后第一步现将head给他,然后我们就开始遍历了。只要temp里面不是null就打印,顺便还能游标后移

这里记录一下,防止自己的狗脑子又忘了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值