当前位置: 首页 > news >正文

链表:头插法与尾插法 - Higurashi

一、头插法

定义:头插法是指在链表头部进行节点插入的方法。其核心特点是,新插入的节点总成为链表的第一个有效节点。因此,如果按数据1, 2, 3的顺序进行头插操作,最终链表的节点排列顺序将是3, 2, 1。简而言之,头插法实现的是逆序插入

代码示例:使用头插法建立单链表

我们首先定义链表节点结构:

class ListNode {int data;ListNode next;public ListNode(int data) {this.data = data;this.next = null;}public ListNode() {this(0); // 无参构造:用于头结点}
}

然后新建一个单链表类,后面将在该类基础上补充头插和尾插对应方法:

import java.util.Scanner;public class LinkedList {private ListNode head; // 头结点(dummy node),不存有效数据private Scanner scanner;public LinkedList() {this.head = new ListNode(); // 创建头结点,next = nullthis.scanner = new Scanner(System.in);}// 工具方法:遍历打印链表(不含头结点)public void print() {ListNode p = head.next;System.out.print("链表内容:");if (p == null) {System.out.println("空");return;}while (p != null) {System.out.print(p.data + " -> ");p = p.next;}System.out.println("null");}// 获取头结点(仅用于测试或外部操作)public ListNode getHead() {return head;}// 关闭 scanner(避免资源泄露)public void close() {scanner.close();}
}

下面是使用头插法创建链表的代码:

// 头插法:逆序插入
public void headInsert() {System.out.print("请输入节点数据(输入 -1 结束):");int x = scanner.nextInt();while (x != -1) {ListNode newNode = new ListNode(x);// 关键两步(头插核心)newNode.next = head.next;head.next = newNode;System.out.print("请输入节点数据(输入 -1 结束):");x = scanner.nextInt();}
}

图示如下:

小结:头插法通常应用于需要将数据进行逆序存储的场景,例如链表逆置操作。

二、尾插法

定义:尾插法是指在链表尾部进行节点插入的方法。其主要特点是,新插入的节点总成为链表的最后一个有效节点。因此,如果按数据1, 2, 3的顺序进行尾插操作,最终链表的节点排列顺序依然是1, 2, 3。简而言之,尾插法实现的是顺序插入

代码示例:使用尾插法建立单链表

// 尾插法:顺序插入
public void tailInsert() {ListNode tail = head; // tail 指向当前尾节点(初始为头结点)System.out.print("请输入节点数据(输入 -1 结束):");int x = scanner.nextInt();while (x != -1) {ListNode newNode = new ListNode(x);// 关键两步(尾插核心)tail.next = newNode;tail = newNode; // 更新尾指针System.out.print("请输入节点数据(输入 -1 结束):");x = scanner.nextInt();}// 最后一个节点的 next 本来就是 null,可省略;显式写出更清晰tail.next = null;
}

图示如下:

尾插法的特点:在整个插入过程中,通过维护一个指向当前表尾的指针tail,可以高效地在链表末尾添加新节点,而无需每次都遍历链表来查找尾部。

http://www.jsqmd.com/news/66818/

相关文章:

  • 百奈子产品耐用吗?用户群体解析TOP5榜单:中国国货眼部抗衰
  • 2025年十大液压站厂家排行榜,液压站标准件厂家与定制生产服
  • 北京翻译服务公司选型决策:2025年12月北京优质翻译服务公司综合实力解析
  • 机械制造企业高性价比磨床评测:上海佑台如何平衡品质与成本
  • 2025上海商业场所保洁优质品牌推荐指南
  • 2025年最新快充/重卡/商用/电动车/新能源充电桩厂家 TOP5 推荐:技术落地 + 全域服务的实力之选
  • 2025年宁波高精度地磅厂家推荐,智能地磅厂家哪家靠谱?十大
  • 2025年数字人厂商哪家好?哪家性价比更高?TOP10深度解析与推荐
  • jenkins 通过ssh配置 将java应用程序部署到远程服务器
  • CVE-2025-11778:Circutor PLC设备中危及内存的堆栈缓冲区溢出漏洞深度解析
  • selenium常用界面交互操作
  • 某中心ICASSP 2022五十余篇论文技术概览
  • 大屏适缩放
  • 2025年潍坊诚信的春节花灯厂家排行榜单,宫灯/华景花灯/大型花灯/互动花灯/巡游花灯/非遗花灯/大型户外花灯/传统花灯春节花灯品牌推荐
  • 2025上海商务空间地毯清洗优质品牌推荐指南
  • 2025年汽车托运避坑指南:精选优质公司名单,专业的汽车托运找哪家解决方案与实力解析
  • 最新发布!2025年数字人哪家好?哪家更值得推荐?
  • 学习记录
  • 2025 宠物粮十大品牌排行榜(含处方粮品牌):科学喂养时代,选对口粮守护毛孩健康
  • 2025年最新数字人平台权威排行榜:全方位深度测评与精选推荐
  • 2025年12月工业冷水机,防爆冷水机,风冷螺杆冷水机厂家最新推荐,聚焦资质、案例、售后的十家机构深度解读!
  • 2025上海商务空间窗帘沙发清洗品牌推荐指南
  • 2025年锅炉节省天然气公司权威推荐:锅炉节气/锅炉节能减排/低氮燃烧器源头厂家精选
  • RunCat 竟然要 139MB?我用纯 C 仅花了100KB 就实现了,还支持直接使用表情包gif/webp
  • 2025年水果盒吸塑机批发厂家权威推荐榜单:电子托盘吸塑机‌/塑料盒吸塑机‌/一次性杯盖吸塑机‌‌源头厂家精选
  • 【2025最新】7-Zip下载安装教程(详细图文步骤 + 使用技巧)
  • 成都软件开发公司哪家好?专业性价比高口碑好的软件开发公司
  • 【Git、GitHub、Gitee】GitLab的概念、注册流程、远程仓库操作以及高级特性详解(超详细)
  • 2025年家用制暖设备品牌权威推荐榜单:暖气片‌/空气能‌/取暖器‌‌品牌精选
  • 苏州永创智能科技详解“CMTI测试电源”共模瞬态抗扰度测试方案及标准 - FORCREAT