Java-单链表的简单操作

一、概念:

链表(linked list):是一种物理存储结构上非连续存储结构,数据元素的逻辑顺序是通过链表中的引用链接次序实现的.

链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。 相比于线性表顺序结构,操作复杂。由于不必须按顺序存储,链表在插入的时候可以达到O(1)的复杂度,比另一种线性表顺序表快得多,但是查找一个节点或者访问特定编号的节点则需要O(n)的时间,而线性表和顺序表相应的时间复杂度分别是O(logn)和O(1)。

二、链表的分类:

  1. 单向链表,双向链表
  2. 带头结点链表,不带头结点链表
  3. 循环的,非循环的
  4. 掌握循环语句
  5. 提示:本篇文章只是单纯写一下单链表的实现,入门级别

三、链表的结构:

在这里插入图片描述
图中所示为链表的一个节点,value是这个节点所存储的数据值,next为下一个节点的地址。
下面是5个节点的链表
在这里插入图片描述

四、代码实现链表:

1.创建节点类
节点由data域(数据域),以及next域(指针域)组成,对于next域,其是引用类型,存放下一个节点的地址,故
用public ListNode next来创建next。
同时设置构造函数,方便对data进行初始化。

class ListNode {
	public int data;
	public ListNode next;

	public ListNode(int data) {
		this.data = data;
	}
	// 增加链表元素
	public void add(int newdata) {
		ListNode nowNode=new ListNode(newdata);
		if(this.next==null) {
			this.next=nowNode;
		}else {
			this.next.add(newdata);
		}
	}
	//打印链表
	public void print() {
		System.out.print(this.data);
		if(this.next!=null) {
			System.out.print("-->");
			this.next.print();
		}
	}
}

2.创建链表

public class LinkedList {
	public static void main(String args[]) {
		ListNode node = new ListNode(1);//增添元素
		node.add(2);//增添元素
		node.add(3);//增添元素
		node.print();//打印链表
	}
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

终生成长者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值