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

C#双向链表实现:在当前节点后插入新数据的方法Insert()

目录

1.定义一个泛型节点类并自动属性

2.定义链表类,并实现Append、Print、MoveFirst、 Insert

3.Main方法


1.定义一个泛型节点类并自动属性

/// <summary>
/// 定义泛型节点类
/// </summary>
/// <typeparam name="T">泛型运算符</typeparam>
/// <param name="value">泛型参数</param>
public class ListNode<T>(T value)
{public T Object { get; set; } = value;public ListNode<T>? Next { get; set; }public ListNode<T>? Previous { get; set; }
}

2.定义链表类,并实现Append、Print、MoveFirst、 Insert

/// <summary>
/// 定义链表类
/// </summary>
public class LinkedList
{private ListNode<int>? _head;private ListNode<int>? _tail;private ListNode<int>? _current;public ListNode<int>? Current { get => _current; set => _current = value; }/// <summary>/// 追加节点到Append方法/// </summary>/// <param name="value"></param>public void Append(int value){var newNode = new ListNode<int>(value);if (_head == null){_head = newNode;_tail = newNode;}else{_tail!.Next = newNode;newNode.Previous = _tail;_tail = newNode;}}/// <summary>/// 输出各节点/// </summary>public void Print(){var current = _head;while (current != null){Console.WriteLine(current.Object);current = current.Next;}}/// <summary>///移动指针到链表头/// </summary>public void MoveFirst(){if (_head != null){_current = _head;}}/// <summary>/// 在当前节点后面插入新数据/// </summary>/// <param name="value">待插入的数据</param>public void Insert(int value){// 创建一个新的节点var newNode = new ListNode<int>(value);// 如果链表为空,将新节点设置为头节点if (_head == null){_head = newNode;_current = newNode;return;}// 找到当前节点var current = _current;if (current == null){//current = _head;_current = _head;while (_current.Next != null){_current = _current.Next;}current = _current;}// 在当前位置插入新节点newNode.Next = current.Next;newNode.Previous = current;current.Next = newNode;_current = newNode;}

3.Main方法

 class Program{static void Main(string[] args){ArgumentNullException.ThrowIfNull(args);var linkedList = new LinkedList();linkedList.Append(5);linkedList.Append(2);linkedList.Append(8);linkedList.Append(1);linkedList.Print();Console.WriteLine("*初始化数据*");linkedList.MoveFirst();linkedList.Insert(3);linkedList.Print();Console.WriteLine("*头结点后插入3*");}}

         运行结果:

//运行结果:
/*
5
2
8
1
*初始化数据*
5
3
2
8
1
*头结点后插入3**/

相关文章:

C#双向链表实现:在当前节点后插入新数据的方法Insert()

目录 1.定义一个泛型节点类并自动属性 2.定义链表类&#xff0c;并实现Append、Print、MoveFirst、 Insert 3.Main方法 1.定义一个泛型节点类并自动属性 /// <summary> /// 定义泛型节点类 /// </summary> /// <typeparam name"T">泛型运算符&…...

10-Java装饰器模式 ( Decorator Pattern )

Java装饰器模式 摘要实现范例 装饰器模式&#xff08;Decorator Pattern&#xff09;允许向一个现有的对象添加新的功能&#xff0c;同时又不改变其结构 装饰器模式创建了一个装饰类&#xff0c;用来包装原有的类&#xff0c;并在保持类方法签名完整性的前提下&#xff0c;提供…...

Vue.js 实用技巧:深入理解 Vue.set 方法

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…...

单词规律00

题目链接 单词规律 题目描述 注意点 pattern只包含小写英文字母s只包含小写英文字母和 ’ ’s不包含任何前导或尾随对空格s中每个单词都被 单个空格 分隔 解答思路 本题与上一次同构字符串类似&#xff0c;思路可以参照同构字符串 代码 class Solution {public boolean …...

vue3 vite项目一运行就401(Unauthorized)

问题&#xff1a;项目一执行&#xff1a; pnpm run dev, 启动就出错&#xff0c; Failed to load resource: the server responded with a status of 401 (Unauthorized) 分析&#xff1a; 项目之前是正常运行的&#xff0c;没有问题&#xff0c;回溯刚刚改动&#xff0c;还原…...

LeetCode102.二叉树的层序遍历

题目 给你二叉树的根节点 root &#xff0c;返回其节点值的 层序遍历 。 &#xff08;即逐层地&#xff0c;从左到右访问所有节点&#xff09;。 示例 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a;[[3],[9,20],[15,7]]输入&#xff1a;root [1] 输出&am…...

Java底层自学大纲_JVM篇

JVM专题_自学大纲所属类别学习主题建议课时&#xff08;h&#xff09; A 深入理解Java虚拟机001 JVM类加载器设计原理2.5 A 深入理解Java虚拟机002 基于SPI破解双亲委派机制2.5 A 深入理解Java虚拟机003 JVM内部结构分析2.5 A 深入理解Java虚拟机004 字符串常量池原理2.5 …...

数据可视化?这些平台能处

图表在各行各业都起到举重若轻的作用&#xff0c;无论是项目汇报、业绩分析&#xff0c;亦或是数据挖掘、统计分析&#xff0c;良好的可视化可以为我们的阐述起到画龙点睛的效果。在一篇文章中&#xff0c;如果只有密密麻麻的文字堆积&#xff0c;无论是谁恐怕都无法长期保持注…...

[ai笔记14] 周鸿祎的ai公开课笔记1

欢迎来到文思源想的ai空间&#xff0c;这是技术老兵重学ai以及成长思考的第14篇分享&#xff01; 本周二月的最后一周&#xff0c;并不是闲下来了&#xff0c;反而是开始进行一些更多的深入实践&#xff0c;关于gpt的主体架构、关于prompt&#xff0c;同时也看了不少书和直播&…...

在Linux系统中创建新用户并登录

1 创建新用户&#xff08;使用 useradd 或 adduser 命令&#xff09; 使用 useradd 命令&#xff08;不带交互式选项&#xff09;创建新用户&#xff0c;同时默认会在 /home 目录下创建同名目录作为家目录&#xff1a; sudo useradd -m 新用户名在执行上述命令后&#xff0c;…...

Vue.js+SpringBoot开发高校实验室管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、研究内容2.1 实验室类型模块2.2 实验室模块2.3 实验管理模块2.4 实验设备模块2.5 实验订单模块 三、系统设计3.1 用例设计3.2 数据库设计 四、系统展示五、样例代码5.1 查询实验室设备5.2 实验放号5.3 实验预定 六、免责说明 一、摘…...

文献阅读笔记《Spatial-temporal Forecasting for Regions without Observations》13页

目录 目录 目录 发行刊物 ABSTRACT 1 INTRODUCTION 2 RELATED WORK&#xff08;相关工作 2.1 Spatial-temporal Forecasting&#xff08;时空预测 2.2 Spatial-temporal Forecasting withIncomplete Data&#xff08;不完全数据的时空预测 2.3 Graph Contrastive Learn…...

如何学习openfoam

学习OpenFOAM的详细步骤、流程、学习网站、练习案例以及B站学习资源推荐如下&#xff1a; 一、详细步骤和流程 安装OpenFOAM&#xff1a;首先&#xff0c;你需要在你的计算机上安装OpenFOAM。你可以从OpenFOAM的官方网站下载适合你的操作系统的安装包&#xff0c;然后按照官方提…...

vue前端密码加密,springboot后端密码解密

1.模块安装 1 npm install crypto-js 2.src–>util–>secret.js 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 import CryptoJS from crypto-js // 默认的 KEY …...

selenuim【1】$x(‘xpath’)、WebDriverWait()、try/assert

文章目录 1、执行driver webdriver.Chrome()后很久才打开浏览器2、浏览器多元素定位 $x(‘xpath语法’)3、打开浏览器driver.get("网址")执行了很久才开始定位元素&#xff1a;等待&#xff08;1&#xff09;driver.set_page_load_timeout(t)&#xff08;2&#xff…...

机器学习模型总结

多元线性回归&#xff08;linear regression&#xff09; 自变量&#xff1a;连续型数据&#xff0c;因变量&#xff1a;连续型数据 选自&#xff1a;周志华老师《机器学习》P53-55 思想&#xff1a;残差平方和达到最小时的关系式子即为所求&#xff0c;残差平方和&#xff1a…...

HTML5:七天学会基础动画网页6

CSS3自定义字体 ①&#xff1a;首先需要下载所需字体 ②&#xff1a;把下载字体文件放入 font文件夹里&#xff0c;建议font文件夹与 css 和 image文件夹平级 ③&#xff1a;引入字体&#xff0c;可直接在html文件里用font-face引入字体&#xff0c;分别是字体名字和路径 例…...

mybatis中#{}和${}的区别?

#{}是占位符&#xff0c;预编译处理&#xff1b;${}是拼接符&#xff0c;字符串替换&#xff0c;没有预编译处理。 Mybatis在处理#{}时&#xff0c;#{}传入参数是以字符串传入&#xff0c;会将SQL中的#{}替换为?号&#xff0c;调用PreparedStatement的set方法来赋值。 Mybat…...

常用git 打tag命令

1.查看所有tag git tag 2.创建 v5.0.0的tag git tag v5.0.0 git tag &#xff08;创建后查看&#xff09; 3.推送到远程tag git push origin v5.0.0 4.删除远程tag git push origin --delete v5.0.0 5.删除本地tag git tag -d v5.0.0 6.添加带有备注信息的tag git tag v5.…...

Learning from Unlabeled 3D Environments forVision-and-Language Navigation

这篇论文是关于高级指令的 摘要 在视觉和语言导航 (VLN) 中&#xff0c;实体代理需要按照自然语言指令在真实的 3D 环境中进行导航。现有 VLN 方法的一个主要瓶颈是缺乏足够的训练数据&#xff0c;导致对未见过的环境的泛化效果不理想。虽然 VLN 数据通常是手动收集的&#x…...

让 AI Agent “睡觉”整理记忆(非常详细),OpenClaw Auto-Dream 实战从入门到精通,收藏这一篇就够了!

你有没有遇到过这样的情况&#xff1a;辛辛苦苦教会了 AI Agent 你的工作习惯和项目背景&#xff0c;关掉窗口、重启会话后&#xff0c;它又变回了一张白纸&#xff1f;这是当前所有基于 LLM&#xff08;大语言模型&#xff09;的 Agent 面临的核心痛点——“聊完就忘”。2026 …...

动态库路径配置实战:解决openssl symbol lookup error的深层解析

1. 问题背景&#xff1a;当openssl升级遇上symbol lookup error 上周我在升级服务器上的openssl时&#xff0c;遇到了一个典型的动态库问题。系统原本使用的是Ubuntu 20.04自带的openssl 1.1.1f&#xff0c;但项目需要用到1.1.1k的新特性。像大多数开发者一样&#xff0c;我选择…...

设计一个简单的图书借阅管理系统。

设计一个简单的图书借阅管理系统。系统初始包含若干本图书&#xff0c;每本图书的信息包括&#xff1a; 书号&#xff08;字符串&#xff09; 书名&#xff08;字符串&#xff09; 作者&#xff08;字符串&#xff09; 库存数量&#xff08;整数&#xff09; 另外&#xff0c;系…...

利用快马平台与claw hub框架,十分钟搭建新闻数据采集原型

最近在尝试用claw hub框架快速搭建新闻数据采集原型时&#xff0c;发现结合InsCode(快马)平台的AI生成能力&#xff0c;整个过程变得异常高效。这里记录下我的实践过程&#xff0c;分享给需要快速验证爬虫想法的朋友。 为什么选择claw hub框架 claw hub是一个轻量级Python爬虫框…...

别再死记硬背LFSR了!用Verilog手搓一个伽罗瓦型伪随机数发生器(附完整代码与仿真)

从零构建伽罗瓦LFSR&#xff1a;Verilog实战指南与工程避坑手册 在数字通信系统的测试环节中&#xff0c;工程师常常需要生成特定的数据序列来模拟真实场景。我曾在一个无线模块开发项目中&#xff0c;为了测试接收机的抗干扰能力&#xff0c;需要快速生成符合特定统计特性的伪…...

Swagger Client 性能优化:10个技巧让你的 API 调用快如闪电

Swagger Client 性能优化&#xff1a;10个技巧让你的 API 调用快如闪电 【免费下载链接】swagger-js Javascript library to connect to swagger-enabled APIs via browser or nodejs 项目地址: https://gitcode.com/gh_mirrors/sw/swagger-js Swagger Client 是一款强大…...

迪卡侬集团2025年净销售额同比增长4.0%至168亿欧元

、美通社消息&#xff1a;2025年&#xff0c;面对瞬息万变的市场环境&#xff0c;迪卡侬集团展现出稳健的经营韧性与持续的战略定力&#xff0c;整体经营表现稳步向好&#xff0c;以当地货币计算&#xff0c;商品交易总额(GMV)同比增长7.1%&#xff0c;净销售额同比增长5.6%&am…...

Janus-Pro-7B惊艳效果:同一张建筑照片生成写实/水彩/线稿三种风格图

Janus-Pro-7B惊艳效果&#xff1a;同一张建筑照片生成写实/水彩/线稿三种风格图 1. 从一张照片到三种艺术风格 想象一下&#xff0c;你手里有一张普通的建筑照片&#xff0c;可能是你旅行时拍的&#xff0c;也可能是工作中需要用的素材。现在&#xff0c;你希望它能变成三种完…...

3DS GBA原生运行技术全解析:从兼容性突破到性能优化实践

3DS GBA原生运行技术全解析&#xff1a;从兼容性突破到性能优化实践 【免费下载链接】open_agb_firm open_agb_firm is a bare metal app for running GBA homebrew/games using the 3DS builtin GBA hardware. 项目地址: https://gitcode.com/gh_mirrors/op/open_agb_firm …...

5步解锁无损音乐:洛雪音乐音源从配置到精通的完整指南

5步解锁无损音乐&#xff1a;洛雪音乐音源从配置到精通的完整指南 【免费下载链接】lxmusic- lxmusic(洛雪音乐)全网最新最全音源 项目地址: https://gitcode.com/gh_mirrors/lx/lxmusic- 洛雪音乐音源项目是一个专为洛雪音乐客户端设计的开源音源集合&#xff0c;汇集了…...