- 博客(13)
- 收藏
- 关注
原创 C#AVL二叉树(2)
上次的AVL二叉树很不成熟,在测试过程中有很多问题,以下AVL树比上次好点。以下一种自平衡二叉搜索树,其中每个节点的两个子树的高度最多相差1。如果任何时候节点的两个子树的高度差超过1,则会通过旋转操作来重新平衡这棵树。以下是代码的主要组成部分和功能:实现了插入、删除、搜索和遍历功能,同时保持了树的平衡性。
2024-08-23 01:54:15
138
原创 C#AVL二叉树
public class AVLTreeNode : IComparable where T : IComparable // 定义一个名为 AVLTreeNode 的类,泛型 T 必须实现 IComparable 接口。private AVLTreeNode InsertNode(AVLTreeNode node, AVLTreeNode newNode)// 递归地将新节点插入到树。// 先对右子节点右旋,再对当前节点左旋。
2024-02-26 16:35:20
1420
原创 C#Random资源2
上篇Random随机生成资源:男女单姓name3.json:["赵","钱","孙","李","周","吴","郑","王","冯","陈","褚","卫","蒋","沈","韩","杨","朱","秦","尤","许","何","吕","施","张","孔","曹","严","华","金","魏","陶","姜","戚","谢","邹","喻","柏","水","窦","章","云","苏","潘","葛","奚","范","彭","郎","鲁","韦","昌","马","苗","凤","花","
2024-02-24 09:05:52
1082
原创 C#Random随机生成资源
上篇Random随机生成资源:地区码和地址xyp1.txt:[{"i":110000,"n":"北京市","c":[{"i":110100,"n":"北京市","d":[{"i":110101,"n":"东城区"},{"i":110102,"n":"西城区"},{"i":110105,"n":"朝阳区"},{"i":110106,"n":"丰台区"},{"i":110107,"n":"石景山区"},{"i":110108,"n":"海淀区"},{"i":110109,"n":"门头沟区"},{"i":1
2024-02-24 08:52:09
1092
原创 C#Random随机生成
{ "湖北", "鄂" }, { "广西", "桂" }, { "甘肃", "甘" }, { "山西", "晋" }, { "内蒙", "蒙" }, { "陕西", "陕" }, { "吉林", "吉" },{"香港","港"},{"澳门","澳"},{ "北京", "京" }, { "天津", "津" }, { "上海", "沪" }, { "重庆", "渝" }, { "河北", "冀" }, { "河南", "豫" }, { "云南", "云" }, { "辽宁", "辽" },
2024-02-24 08:45:44
1563
原创 c#数组列表一些查找方法
S.这个问题与之前描述的“三元组最小距离”问题一致,给定三个升序排列的整数数组`a[]`(长度为l)、`b[]`(长度为m)和`c[]`(长度为n),要求找到这三个数组中的元素组成的三元组`(a[i], b[j], c[k])`,使得它们的距离`D = |a[i] - b[j]| + |b[j] - c[k]| + |c[k] - a[i]|`最小。插入排序的基本思想是将元素从数组的一端逐个插入到已排序的部分中,对于逆序操作,我们则需要从数组另一端开始,逐个将元素“插入”到未排序部分的头部。
2024-01-14 19:23:00
3113
1
原创 c#随机权重一些算法(免费)
在这个例子中,我们在文本"ABCDABCDABCD"中搜索模式"ABCDA",输出结果应该是"Pattern found at index: 0"和"Pattern found at index: 5",因为模式在文本的这两个位置出现。在这个例子中,"Apple" 的权重是2,"Banana" 的权重是3,"Cherry" 的权重是1,"Date" 的权重是4。这意味着 "Date" 被选中的概率最高,其次是 "Banana",然后是 "Apple","Cherry" 的概率最低。
2024-01-09 17:44:00
851
原创 c#System.Text.Json序列化入门
2. **安全性和默认行为**:`System.Text.Json` 默认提供了一定的安全性保障,例如,它不允许反序列化非泛型集合到具体的集合类型(除非明确指定),并且对不受信任的数据有严格的JSON输入验证机制,以防止潜在的安全攻击,如JSON注入。1. **JSON转换为对象**:当调用 `System.Text.Json.JsonSerializer.Deserialize()` 方法时,库读取JSON字符串或者流数据,解析JSON结构,并根据目标类型创建相应的.NET对象实例。// 输出:"小明"
2024-01-09 16:27:56
1935
原创 c#序列化日常操作
在C#中,使用`System.Text.Json`进行反序列化时,如果要反序列化的JSON没有对应的目标类,可以利用匿名类型或者动态对象(`System.Text.Json.JsonDocument`或`System.Dynamic.ExpandoObject`)来实现。使用 `System.Text.Json` 库对 `List<Person>` 进行序列化和反序列化,并通过 `Stream` 或 `FileStream` 来读写文件。// 从文件反序列化 JSON 到 List<string>
2024-01-09 16:05:48
554
原创 c#几种排序方法
MergeSort`方法首先检查序列长度是否大于1,然后找到中间点,分别对左右两部分递归调用自身进行排序,最后通过`Merge`方法将排序好的两个子序列合并成完整有序的序列。它的工作方式是每一次从未排序序列中找到最小(或最大)的元素,存放到排序序列的起始位置,然后再从剩余未排序元素中继续寻找最小(或最大)元素,然后放到已排序序列的末尾。冒泡排序通过重复遍历待排序的数列,每次遍历时都将相邻两个元素进行比较,如果他们的顺序错误(例如对于升序排列来说,前面的元素大于后面的元素),就交换这两个元素的位置。
2024-01-09 15:41:24
737
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人