目录

5.1 链表的结点

5.2 插入

5.3 链表长度

5.4 查找

5.5 指定位置删除

5.6 代码


5.1 链表的结点

一个结点包括:值和指向下一个结点的指针。

package com.qcby.链表;public class Node {int value;Node next;public Node(int val){value=val;}@Overridepublic String toString() {return "Node [value="+value+",next="+next+"]";}}

5.2 插入

分为尾插和头插。

尾插和头插法都分为两种情况。

5.3 链表长度

遍历数组,记录节点个数即可。

5.4 查找

遍历链表,如果某一个节点的值等于要查找的值,则查找成功;否则查找失败。

5.5 指定位置删除

首先判断删除的位置合不合法。如果不合法,则无法删除。

合法,则删除分为两种情况:第一种是删除头结点;第2种是删除其他位置。

如果是删头结点,直接让head等于head.next。如果是其他,则先遍历链表(用到pre 和 index,pre 是index的前一个结点),找到要删除的位置,令pre.next=index.next。

5.6 代码

package com.qcby.链表;public class LinkList {Node head=null;//尾插法public void insert(int value) {Node node=new Node(value);if(head==null) {head=node;return;}//找到最后Node index=head;while(index.next!=null) {index=index.next;}//插入index.next=node;}//头插法public void insertHead(int value) {Node node=new Node(value);if(head==null) {head=node;return;}node.next=head;head=node;}//链表长度public int getLen() {Node index=head;int count=0;while(index!=null) {count++;index=index.next;}return count;}//链表中查找数据public int search(int num) {Node index=head;int count=0;while(index!=null) {if(index.value==num) {return count;}else {index=index.next;}count++;}return -1;}//指定位置删除public void delete(int position) {//合法if(position<0||position>=getLen()) {System.out.println("删除位置不合法!");}//删头if(position==0) {head=head.next;}else {//先找到位置int count=0;Node index=head;Node pre=null;while(count!=position) {pre=index;index=index.next;count++;}pre.next=index.next;}}@Overridepublic String toString() {String res="[ ";Node index=head;while(index!=null) {res=res+index.value+" ";index=index.next;}res=res+"]";return res;}}
package com.qcby.链表;public class Test {public static void main(String[] args) {
//		Node node1=new Node(9);
//		Node node2=new Node(5);
//		Node node3=new Node(90);
//		Node node4=new Node(0);
//		node1.next=node2;
//		node2.next=node3;
//		node3.next=node4;
//		System.out.println(node1);LinkList list=new LinkList();list.insertHead(0);list.insertHead(10);list.insertHead(2);list.insertHead(8);list.insertHead(6);System.out.println(list);System.out.println(list.getLen());System.out.println(list.search(100));System.out.println(list.search(2));list.delete(2);System.out.println(list);}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/93547.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/93547.shtml
英文地址,请注明出处:http://en.pswp.cn/bicheng/93547.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

私人AI搜索新突破:3步本地部署Dify+Ollama+QwQ,搜索能力MAX

1.安装Docker容器 本地部署Dify要先安装Docker桌面版&#xff0c;跟Ollama一样简单&#xff0c;也是去官网下载对应版本文件&#xff0c;直接安装就OK。 2&#xff1a;安装Dify 安装 Dify 简单的方式就是git clone&#xff0c;复制其github地址github.com/langgenius/dify&am…

(2-10-1)MyBatis的基础与基本使用

目录 0.前置小节 1. MyBatis 框架介绍 1.1 软件开发中的框架 1.2 使用框架的好处 1.3 SSM 开发框架 1.4 什么是 MyBatis 1.5 MyBatis 的开发流程 2. MyBatis 的开发流程 2.0 MyBatis的工作流程 2.1 引入 MyBatis 依赖 00.base(目录、pom、单元测试、Junit4) 01.Cal…

StarRocks集群部署

Starrocks 是一款基于 MPP 架构的高性能实时分析型数据库&#xff0c;专为 OLAP&#xff08;联机分析处理&#xff09;场景 设计&#xff0c;尤其擅长处理海量数据的实时分析、复杂查询和多维统计。 硬件 CPU&#xff1a;StarRocks依靠AVX2指令集充分发挥其矢量化能力。因此&am…

【CPP】自己实现一个CPP小工具demo,可以扩展其他选项

自己写CPP脚本小工具1. 思路描述2. 代码实现2.1 代码文件CppTool.cpp2.2 CMakeLists.txt3. 工具示例3.1 帮助信息3.2 工具用法3.3 实际使用1. 思路描述 实现一个简单的命令行工具。内容包括&#xff1a; 命令帮助信息参数检查&#xff0c;参数解析等功能。执行其他命令。将指…

如何使用嵌入模型创建本地知识库Demo

为data目录下的txt文档用阿里百炼的文本嵌入模型创建一个本地知识库import os from llama_index.core import ,Settings, SimpleDirectoryReader, VectorStoreIndex from llama_index.core.node_parser import SentenceSplitter from llama_index.llms.dashscope import DashSc…

SpringBoot 整合 Langchain4j:系统提示词与用户提示词实战详解

> 掌握提示词工程的核心技巧,让你的AI应用效果提升300%! **真实痛点**:为什么同样的模型,别人的应用精准专业,而你的却答非所问?关键在于提示词工程!本文将揭秘如何通过系统提示词与用户提示词的巧妙配合,打造专业级AI应用。 --- ### 一、Langchain4j 核心概念…

Sklearn 机器学习 邮件文本分类 加载邮件数据

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Sklearn 机器学习 邮件文本分类 - 加载邮件数据 在自然语言处理(NLP)中,邮件文本分…

腾讯云开发小程序工具箱使用心得

一、核心优势与使用体验 作为首批使用腾讯云开发&#xff08;CloudBase&#xff09;工具箱的开发者&#xff0c;我深刻感受到其通过CloudBase AI与MCP服务重构开发范式的创新价值。结合微信小程序开发场景&#xff0c;该平台在以下维度表现突出&#xff1a; 1. AI驱动的全栈开发…

机械加工元件——工业精密制造的璀璨明珠

在工业制造的宏大画卷中&#xff0c;机械加工元件犹如璀璨的明珠&#xff0c;以其卓越的性能和精湛的工艺&#xff0c;为各行各业的发展注入了源源不断的动力。它们虽形态各异&#xff0c;功能不同&#xff0c;却在无数产品中携手合作&#xff0c;展现出科技与柔性的完美融合。…

【八股】Redis-中小厂精要八股

Redis 基础 redis为什么这么快 (高) [!NOTE] 最首要的是Redis是纯内存操作, 比磁盘要快3个数量级同时在与内存操作中采用了非阻塞I/O多路复用机制来提高并发量并且基于Redis的IO密集型&#xff0c;采用单线程操作, 免去了线程切换开销Redis 内置了多种优化过后的数据结构实现…

C++字符串(string)操作解析:从基础到进阶

1. 字符串基础&#xff1a;大小与容量cppvoid test1() {string s1("Hello World");cout << "size : " << s1.size() << endl; // 输出字符串长度cout << "capacity " << s1.capacity() << endl; // 输出字…

蘑兔音乐:音乐创作的魔法棒

在这个充满创意与可能的时代&#xff0c;人人都有一颗渴望表达音乐之心。但传统音乐创作&#xff0c;复杂的乐理、昂贵的设备&#xff0c;总让人望而却步。别担心&#xff01;蘑兔 AI 音乐强势来袭&#xff0c;它就是那个能让音乐小白也能搞创作的神奇工具&#xff01;​灵感模…

从传统到智能:RFID 技术如何重构压缩机生产线

从传统到智能&#xff1a;RFID 技术如何重构压缩机生产线在工业 4.0 与中国制造 2025 战略的深入推进下&#xff0c;作为空调核心部件的压缩机制造业正加速从传统生产模式向智能化转型。压缩机生产以高精度、大批量为显著特点&#xff0c;长期面临生产数据断层、柔性化不足、质…

HTML5二十四节气网站源码

一. 二十四节气文化主题网站概述 本网站以中国传统文化瑰宝“二十四节气”为核心&#xff0c;通过现代Web技术打造沉浸式文化体验平台&#xff0c;融合视觉美学与交互创新&#xff0c;全方位展现节气的自然规律与人文内涵。网站采用响应式布局设计&#xff0c;适配多终端设备&…

微服务架构实战指南:从单体应用到云原生的蜕变之路

&#x1f31f; Hello&#xff0c;我是蒋星熠Jaxonic&#xff01; &#x1f308; 在浩瀚无垠的技术宇宙中&#xff0c;我是一名执着的星际旅人&#xff0c;用代码绘制探索的轨迹。 &#x1f680; 每一个算法都是我点燃的推进器&#xff0c;每一行代码都是我航行的星图。 &#x…

超越Transformer:大模型架构创新的深度探索

引言&#xff1a; 以GPT、Claude、Gemini等为代表的大语言模型&#xff08;LLMs&#xff09;已成为人工智能领域的核心驱动力。它们基于Transformer架构构建&#xff0c;在理解和生成人类语言方面展现出惊人的能力。然而&#xff0c;随着模型规模指数级增长和对更长上下文、更高…

完整设计 之 智能合约系统:主题约定、代理协议和智能合约 (临时命名)--腾讯元宝答问

本文要点和任务整体设计&#xff08;符号学 &#xff1a;为了诠释学实践运用 形。而上理论&#xff0c;将自己作为 两者结合的 条带 &#xff09;&#xff0c;包括三部分&#xff1a;内核&#xff08;设置-组态-主动把握的操作&#xff09;是认知学&#xff08;语义&#xff09…

同创物流学习记录2·电车光电

灯在闪烁&#xff0c;照到你前面的东西了&#xff0c;它可以照前面&#xff0c;可以照6米远。你那个电车前面五六米感应到东西了&#xff0c;它就会减速&#xff0c;然后到3米的样子&#xff0c;它会再减速。然后再到1米2的样子&#xff0c;它就会停下来。电车前侧光电这个区域…

linux I2C核心、总线与设备驱动

一、 linux I2C体系结构linux的I2C体系结构分为3个组成部分1&#xff09;I2C核心I2C核心提供了I2C总线驱动与设备驱动的注册、注销方法&#xff0c;I2C通信方法&#xff08;即Algorithm&#xff09;上层的与具体适配器无关的代码及其探测设备、检测设备地址的上层代码等…

跑实验记录

1.下载git&#xff08;base) mqmq-MS-7A59:~/桌面$ sudo apt update && sudo apt install git2.克隆项目&#xff08;base) mqmq-MS-7A59:~/桌面$ sudo apt update && sudo apt install git3.canda创建环境(base) mqmq-MS-7A59:~$ conda create -n HyTE python…