4-7-1.C# 数据容器 - LinkedList(LinkedList 的定义、LinkedList 结点的遍历、LinkedList 的常用方法)
LinkedList 概述
-
LinkedList<T>通过节点(Node)来存储数据,每个节点包含数据和指向下一个节点的引用 -
LinkedList<T>存储的元素是可重复的 -
LinkedList<T>支持泛型,可以指定存储的元素的类型 -
LinkedList<T>不支持索引,因为它通过节点(Node)来存储数据 -
LinkedList<T>不是线程安全的,在多线程环境中需要谨慎使用
一、LinkedList 的定义
- 定义 LinkedList
LinkedList<int> nums = new LinkedList<int>();
- 定义 LinkedList 并填充一些元素
LinkedList<int> nums = new LinkedList<int>(new int[] { 1, 2, 3, 4, 5 });
二、LinkedList 结点的遍历
1、使用 foreach 循环遍历
LinkedList<int> nums = new LinkedList<int>(new int[] { 1, 2, 3, 4, 5 });foreach (int value in nums)
{Console.WriteLine(value);
}
# 输出结果1
2
3
4
5
2、使用 First 属性与 Next 属性遍历
LinkedList<int> nums = new LinkedList<int>(new int[] { 1, 2, 3, 4, 5 });LinkedListNode<int> currentNode = nums.First;
while (currentNode != null)
{Console.WriteLine(currentNode.Value);currentNode = currentNode.Next;
}
# 输出结果1
2
3
4
5
三、LinkedList 的常用方法
1、LinkedList 结点的添加(对于 LinkedList)
- 从 LinkedList 头部添加
LinkedList<int> nums = new LinkedList<int>();nums.AddLast(1);
nums.AddLast(2);
nums.AddLast(3);foreach (int value in nums)
{Console.WriteLine(value);
}
# 输出结果1
2
3
- 从 LinkedList 尾部添加
LinkedList<int> nums = new LinkedList<int>();nums.AddFirst(1);
nums.AddFirst(2);
nums.AddFirst(3);foreach (int value in nums)
{Console.WriteLine(value);
}
# 输出结果3
2
1
- 从 LinkedList 头部和尾部添加
LinkedList<int> nums = new LinkedList<int>();nums.AddLast(1);
nums.AddLast(2);
nums.AddLast(3);nums.AddFirst(1);
nums.AddFirst(2);
nums.AddFirst(3);foreach (int value in nums)
{Console.WriteLine(value);
}
# 输出结果3
2
1
1
2
3
2、LinkedList 结点的添加(对于结点)
- 在某个结点之后添加
LinkedList<int> nums = new LinkedList<int>();nums.AddLast(1);
nums.AddLast(2);
nums.AddLast(3);LinkedListNode<int> secondNode = nums.First.Next;
nums.AddAfter(secondNode, 10);foreach (int value in nums)
{Console.WriteLine(value);
}
# 输出结果1
2
10
3
- 在某个结点之前添加
LinkedList<int> nums = new LinkedList<int>();nums.AddLast(1);
nums.AddLast(2);
nums.AddLast(3);LinkedListNode<int> secondNode = nums.First.Next;
nums.AddBefore(secondNode, 10);foreach (int value in nums)
{Console.WriteLine(value);
}
# 输出结果1
10
2
3
3、LinkedList 结点的删除
- 删除指定数据的结点
LinkedList<int> nums = new LinkedList<int>();nums.AddLast(1);
nums.AddLast(2);
nums.AddLast(3);Console.WriteLine("删除结点之前");
foreach (int value in nums)
{Console.WriteLine(value);
}nums.Remove(2);Console.WriteLine("删除结点之后");
foreach (int value in nums)
{Console.WriteLine(value);
}
# 输出结果删除元素之前
1
2
3
删除元素之后
1
3
- 删除第一个结点
LinkedList<int> nums = new LinkedList<int>();nums.AddLast(1);
nums.AddLast(2);
nums.AddLast(3);Console.WriteLine("删除结点之前");
foreach (int value in nums)
{Console.WriteLine(value);
}nums.RemoveFirst();Console.WriteLine("删除结点之后");
foreach (int value in nums)
{Console.WriteLine(value);
}
# 输出结果删除元素之前
1
2
3
删除元素之后
2
3
- 删除最后一个结点
LinkedList<int> nums = new LinkedList<int>();nums.AddLast(1);
nums.AddLast(2);
nums.AddLast(3);Console.WriteLine("删除结点之前");
foreach (int value in nums)
{Console.WriteLine(value);
}nums.RemoveLast();Console.WriteLine("删除结点之后");
foreach (int value in nums)
{Console.WriteLine(value);
}
# 输出结果删除结点之前
1
2
3
删除结点之后
1
2
4、LinkedList 结点的清空
LinkedList<int> nums = new LinkedList<int>();nums.AddLast(1);
nums.AddLast(2);
nums.AddLast(3);Console.WriteLine("清空结点之前");
foreach (int value in nums)
{Console.WriteLine(value);
}nums.Clear();Console.WriteLine("清空结点之后");
foreach (int value in nums)
{Console.WriteLine(value);
}
# 输出结果清空结点之前
1
2
3
清空结点之后
5、LinkedList 结点的查找
LinkedList<int> nums = new LinkedList<int>();nums.AddLast(1);
nums.AddLast(2);
nums.AddLast(3);LinkedListNode<int> node = nums.Find(2);Console.WriteLine(node.Value);
# 输出结果2
相关文章:
4-7-1.C# 数据容器 - LinkedList(LinkedList 的定义、LinkedList 结点的遍历、LinkedList 的常用方法)
LinkedList 概述 LinkedList<T> 通过节点(Node)来存储数据,每个节点包含数据和指向下一个节点的引用 LinkedList<T> 存储的元素是可重复的 LinkedList<T> 支持泛型,可以指定存储的元素的类型 LinkedList<…...
「三」体验HarmonyOS端云一体化开发模板——使用DevEco Studio直接创建端云一体化工程
关于作者 白晓明 宁夏图尔科技有限公司董事长兼CEO、坚果派联合创始人 华为HDE、润和软件HiHope社区专家、鸿蒙KOL、仓颉KOL 华为开发者学堂/51CTO学堂/CSDN学堂认证讲师 开放原子开源基金会2023开源贡献之星 「目录」 「一」HarmonyOS端云一体化概要 「二」体验HarmonyOS端云一…...
确保以管理员权限运行 Visual Studio 开发者命令提示符
文章目录 解决方法:1. 以管理员身份运行命令提示符2. 改变目录权限3. 改变项目目录位置4. 检查文件系统权限 总结: ********************************************************************** ** Visual Studio 2022 Developer Command Prompt v17.12.0 …...
命令执行简单(棱角社区有毒)
前言:小迪安全2022第一节反弹shell,小迪用的是两台都是云服务器,没有服务器可以在自己的主机上搭建也是可以的,主机上搭两个网站 思路:生成一个木马文件,下载到本机,然后利用本机上传到目标主机…...
Keil基于ARM Compiler 5的工程迁移为ARM Compiler 6的工程
环境: keil版本为5.38,版本务必高于5.30 STM32F4的pack包版本要高于2.9 软件包下载地址:https://zhuanlan.zhihu.com/p/262507061 一、更改Keil中编译器 更改后编译,会报很多错,先不管。 二、更改头文件依赖 观察…...
Kafka-创建topic源码
一、命令创建topic kafka-topics --create --topic quickstart-events --bootstrap-server cdh1:9092 --partitions 2 --replication-factor 2 二、kafka-topics脚本 exec $(dirname $0)/kafka-run-class.sh org.apache.kafka.tools.TopicCommand "$" 脚本中指定了…...
【网络安全】(一) 0成本添加访问级监控
互联网的安全感这个概念源于阿里。顾名思义,让互联网的用户对于web产品能够产生足够的信任和依赖。特别是涉及到用户资金交易的站点,一次严重的用户资料泄露就可以彻底毁掉你的品牌。 然而当前阶段除了bat大部分互联网行业的企业对于网络安全给的重视都…...
【Three.js基础学习】26. Animated galaxy
前言 shaders实现星系 课程回顾 使用顶点着色器为每个粒子设置动画 a属性 , u制服 ,v变化 像素比:window.devicePixelRatio 自动从渲染器检索像素比 renderer.getPixelRatio() 如何尺寸衰减, 放大缩小视角时,粒子都是同…...
vscode使用ssh配置docker容器环境
1 创建容器,并映射主机和容器的指定ssh服务端口 2 进入容器 docker exec -it <容器ID> /bin/bash 3在容器中安装ssh服务 apt-get update apt-get install openssh-server 接着修改ssh文件信息,将容器的10008端口暴露出来允许root用户使用ssh登录 vim /…...
NLP论文速读(EMNLP 2024)|动态奖励与提示优化来帮助语言模型的进行自我对齐
论文速读|Dynamic Rewarding with Prompt Optimization Enables Tuning-free Self-Alignment of Language Models 论文信息: 简介: 本文讨论的背景是大型语言模型(LLMs)的自我对齐问题。传统的LLMs对齐方法依赖于昂贵的训练和人类偏好注释&am…...
【LeetCode】167. 两数之和 II - 输入有序数组
描述 给定一个下标从 1 开始的整数数组numbers,该数组已按非递减顺序排列,请从数组中找出满足相加之和等于目标数target的两个数。如果这两个数分别是numbers[index1]和numbers[index2],返回整数数组[index1, index2]。 只存在唯一答案&#…...
Getx:GetxController依赖管理02,Binding绑定全局控制器(懒加载Controller)
在使用GetX 状态管理器的时候,如果每个页面都手动实例化一个控制器就太麻烦了, Binding 的作用就是所有需要进行状态管理的控制器进行统一初始化 创建全局控制器Binding import package:get/get.dart; import ../controllers/counter.dart; // 同上一篇内…...
leetcode 找不同
389. 找不同 已解答 简单 相关标签 相关企业 给定两个字符串 s 和 t ,它们只包含小写字母。 字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。 请找出在 t 中被添加的字母。 示例 1: 输入:s "abcd"…...
2025 - 生信信息学 - GEO数据分析 - RF分析(随机森林)
GEO数据分析 - RF分析(随机森林) 01 准备数据文件 #install.packages("randomForest")#引用包 library(randomForest) set.seed(123456)inputFile"diffGeneExp.txt" #输入文件 setwd("/Users/wangyang/Desktop/BCBM/02ra…...
Matlab深度学习(四)——AlexNet卷积神经网络
网络搭建参考:手撕 CNN 经典网络之 AlexNet(理论篇)-CSDN博客 在实际工程应用中,构建并训练一个大规模的卷积神经网络是比较复杂的,需要大量的数据以及高性能的硬件。如果通过训练好的典型网络稍加改进…...
etcd defrag
场景 prometheus监控告警,告警信息如下 etcd cluster "kube-etcd": database size in use on instance xx is 33.45% of the actual allocated disk space, please run defragmentation (e.g. etcdctl defrag) to retrieve the unused fragmented disk space.处理…...
golang语言整合jwt+gin框架实现token
1.下载jwt go get -u github.com/dgrijalva/jwt-go2.新建生成token和解析token文件 2.1 新建common文件夹和jwtConfig文件夹 新建jwtconfig.go文件 2.2 jwtconfig.go文件代码 /* Time : 2021/8/2 下午3:03 Author : mrxuexi File : main Software: GoLand */ package jwtC…...
数据治理、数据素养和数据质量管理:文献综述
注意:这并不是正式发表的论文,只是一篇用来交作业的文章 摘要 随着数据时代的到来,数据治理、数据素养和数据质量管理成为组织数据管理中的三大核心概念。本文基于相关研究与实践,对这三个领域进行全面综述,探讨它…...
【Linux】用户和用户组管理
管理用户 1.添加用户账号——useradd命令 【实例2-1-1】 按系统默认配置添加指定用户账号st和stu。 # 添加用户账号st [rootlocalhost ~]# useradd st # 添加用户账号stu [rootlocalhost ~]# useradd stu【实例2-1-2】添加用户账号stu01,UID为1004&am…...
游戏引擎学习第16天
视频参考:https://www.bilibili.com/video/BV1mEUCY8EiC/ 这些字幕讨论了编译器警告的概念以及如何在编译过程中启用和处理警告。以下是字幕的内容摘要: 警告的定义:警告是编译器用来告诉你某些地方可能存在问题,尽管编译器不强制要求你修复…...
基于算法竞赛的c++编程(28)结构体的进阶应用
结构体的嵌套与复杂数据组织 在C中,结构体可以嵌套使用,形成更复杂的数据结构。例如,可以通过嵌套结构体描述多层级数据关系: struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...
利用最小二乘法找圆心和半径
#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...
第19节 Node.js Express 框架
Express 是一个为Node.js设计的web开发框架,它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用,和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...
shell脚本--常见案例
1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件: 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...
MMaDA: Multimodal Large Diffusion Language Models
CODE : https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA,它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构…...
uniapp中使用aixos 报错
问题: 在uniapp中使用aixos,运行后报如下错误: AxiosError: There is no suitable adapter to dispatch the request since : - adapter xhr is not supported by the environment - adapter http is not available in the build 解决方案&…...
LINUX 69 FTP 客服管理系统 man 5 /etc/vsftpd/vsftpd.conf
FTP 客服管理系统 实现kefu123登录,不允许匿名访问,kefu只能访问/data/kefu目录,不能查看其他目录 创建账号密码 useradd kefu echo 123|passwd -stdin kefu [rootcode caozx26420]# echo 123|passwd --stdin kefu 更改用户 kefu 的密码…...
【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论
路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中(图1): mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...
Unity UGUI Button事件流程
场景结构 测试代码 public class TestBtn : MonoBehaviour {void Start(){var btn GetComponent<Button>();btn.onClick.AddListener(OnClick);}private void OnClick(){Debug.Log("666");}}当添加事件时 // 实例化一个ButtonClickedEvent的事件 [Formerl…...
mac:大模型系列测试
0 MAC 前几天经过学生优惠以及国补17K入手了mac studio,然后这两天亲自测试其模型行运用能力如何,是否支持微调、推理速度等能力。下面进入正文。 1 mac 与 unsloth 按照下面的进行安装以及测试,是可以跑通文章里面的代码。训练速度也是很快的。 注意…...
