博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java实现单链表的添加和遍历功能
阅读量:3946 次
发布时间:2019-05-24

本文共 1365 字,大约阅读时间需要 4 分钟。

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

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

单链表具体是什么呢?

最根本的就是将你要储存的数据分成两个部分,一部分用来存储输入的数据,一部分存储下一个数据的地址

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

这样我们需要建立一个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

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就打印,顺便还能游标后移

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

转载地址:http://zhlwi.baihongyu.com/

你可能感兴趣的文章
15个用于管理MySQL服务器mysqladmin命令
查看>>
服务器端I / O性能:Node,PHP,Java与Go
查看>>
多行文本编辑时,同一行编辑不同类型的字符时自动换行的问题
查看>>
如何使开机动画只播一次
查看>>
如何在平台上实现LED灯的效果?如信号灯,来短信/来电时LED动画闪烁
查看>>
restore factory属性的enable和disable
查看>>
Android LOG机制流程图
查看>>
如何在JNI中抛异常
查看>>
Android应用程序的完全退出
查看>>
Task和Activity相关的一些属性
查看>>
JAVA系统属性之user.home
查看>>
Android代码截屏
查看>>
Android中打印代码的调用层次
查看>>
成功者十三个价值连城的习惯
查看>>
特别成功的人会做6件事
查看>>
Android: 用jni 获取MAC地址
查看>>
字符串列表的C语言实现:c_strlist
查看>>
客户沟通的方式:礼貌待客沟通方式,技巧推广沟通方式,个性服务沟通方式
查看>>
用弹性工作制留住员工
查看>>
知识=经验×反思2
查看>>