Java语言实现数据结构单链表

在这里插入代码片

package demo2;
/**
 * 节点的实现方法
 * @author 
 *
 */
public class Node {
   //节点内容
	 int data;
	 //定义下一个节点
	Node next;
	//用一个构造函数传递参数
	public Node(int data){
		this.data=data;
	}
	//为节点增加一个节点
	public Node append(Node node){
		//当前节点
		Node currentNode = this;
		//循环向后找
		while(true){
			//取出下一个节点
			Node nextNode = currentNode.next;
			//如果下一个节点为null
			if(nextNode ==null){
				break;
			}
			//赋值当前节点
			currentNode = nextNode;
		}
	//需要追加的节点追加为当前找到当前节点下一个节点
		currentNode.next=node;
		return this;
	}
	//删除下一个节点
	public void removeNext(){
		//取出下下一个节点
		Node newNext = next.next;
		//把取出的节点设置为当前节点的下一个节点,成功删除跟在后边的节点。
		this.next=newNext;
	}
	//插入一个节点作为当前节点的下一个节点
	public void after(Node node){
		//取出下一个节点,作为下下一个节点
				Node nextNext = next;
				//把新节点作为当前节点的下一个节点
				this.next=node;
				//把下下一个节点设置为新节点的下一个节点
				node.next=nextNext;
		
	}
	//显示所有节点信息
	public void show(){
		Node currentNode = this;
		while(true){
			System.out.println(currentNode.data+"");
			//取出下一个节点
			currentNode = currentNode.next;
			//如果是最后一个节点
			if(currentNode==null){
				break;
			}
		}
	}
	//获取下一个节点
	public Node next(){
		return this.next;
	}
	//获取节点中的数据
	public int getDate(){
		return this.data;
	}
	//当前节点是否是最后一个节点
	public boolean isLast(){
		return next==null;
	}
}

在这里插入代码片

package demo2.test;

import demo2.Node;

public class TestNode {

	public static void main(String[] args) {
		//创建一个节点
		Node n1 = new Node(1);
		Node n2 = new Node(2);
		Node n3 = new Node(3);
		//追加节点
		n1.append(n2).append(n3).append(new Node(4));
		//取出下一个节点
		//System.out.println(n1.next().getDate());
		//判断节点是否为最后一个节点
//		System.out.println(n1.isLast());
//		System.out.println(n1.next().next().next().isLast());
		//显示节点内容
		n1.show();
		//删除一个节点
		n1.removeNext();
		//插入一个新的节点
		Node node = new Node(5);
		n1.next().after(node);
		n1.show();

	}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值